Set contentType in attachment item metadata during upload #506
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI/CD | |
| on: | |
| push: | |
| branches: [ main ] | |
| tags: [ '*' ] | |
| pull_request: | |
| merge_group: | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| lint: | |
| name: run Ruff | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 0 # Optional, use if you use setuptools_scm | |
| submodules: false # Optional, use if you have submodules | |
| name: Check out repo | |
| - uses: astral-sh/ruff-action@v3 | |
| with: | |
| args: "check --verbose" | |
| build: | |
| name: Build and test | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: [3.9, 3.10.9, 3.11, 3.12, 3.13] | |
| steps: | |
| - name: check out repo | |
| uses: actions/checkout@v6 | |
| - name: Install uv and set the python version | |
| uses: astral-sh/setup-uv@v7 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| enable-cache: true | |
| cache-dependency-glob: "**/pyproject.toml" | |
| - name: Install the project and deps | |
| run: uv sync --dev --locked | |
| - name: Run tests | |
| run: uv run pytest --junit-xml=junit.xml | |
| - name: Build wheel | |
| run: uv build --no-sources --wheel -o dist | |
| - uses: actions/upload-artifact@v5 | |
| name: Upload wheel as artifact | |
| with: | |
| name: wheels-py${{ matrix.python-version }} | |
| path: | | |
| ./dist/*.whl | |
| - uses: actions/upload-artifact@v5 | |
| name: Upload test results | |
| if: always() | |
| with: | |
| name: test-results-py${{ matrix.python-version }} | |
| path: junit.xml | |
| make_sdist: | |
| name: Make SDist | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v7 | |
| with: | |
| enable-cache: true | |
| - name: Build SDist | |
| run: uv build --no-sources --sdist -o dist | |
| - uses: actions/upload-artifact@v5 | |
| with: | |
| name: sdist | |
| path: dist/*.tar.gz | |
| status_check: | |
| name: All Checks | |
| needs: [lint, build, make_sdist] | |
| runs-on: ubuntu-latest | |
| if: always() | |
| steps: | |
| - name: Check status | |
| if: contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') | |
| run: exit 1 | |
| release_artifacts: | |
| if: github.event_name == 'push' && contains(github.ref, 'refs/tags/') | |
| name: Release repaired and tested wheels | |
| needs: [status_check, make_sdist] | |
| runs-on: ubuntu-latest | |
| environment: release | |
| permissions: | |
| # IMPORTANT: this permission is mandatory for trusted publishing | |
| id-token: write | |
| contents: write | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Download wheel artifacts | |
| uses: actions/download-artifact@v6 | |
| with: | |
| pattern: wheels-* | |
| path: ./artifacts | |
| merge-multiple: true | |
| - name: Download sdist artifact | |
| uses: actions/download-artifact@v6 | |
| with: | |
| name: sdist | |
| path: ./artifacts | |
| - name: Create release and upload wheels | |
| uses: ncipollo/release-action@v1 | |
| with: | |
| allowUpdates: true | |
| artifacts: "./artifacts/*.whl,./artifacts/*.tar.gz" | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| - name: PyPI Publish | |
| uses: pypa/gh-action-pypi-publish@release/v1 | |
| with: | |
| packages-dir: ./artifacts |