Switch to uv #1248
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: tests | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| logLevel: | |
| description: "Log level" | |
| required: true | |
| default: "info" | |
| push: | |
| branches: | |
| - master | |
| - ci/* | |
| pull_request: | |
| branches: | |
| jobs: | |
| linting: | |
| name: Linting | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Set up Python 3.11 with uv | |
| uses: astral-sh/setup-uv@v7 | |
| with: | |
| python-version: '3.11' | |
| - name: Install the project | |
| run: uv sync --locked --all-extras | |
| - name: Linting | |
| run: uv run inv lint | |
| tests: | |
| needs: linting | |
| name: ${{ matrix.os }} / ${{ matrix.python-version }} | |
| runs-on: ${{ matrix.os }}-latest | |
| continue-on-error: ${{ matrix.experimental }} | |
| strategy: | |
| fail-fast: true | |
| matrix: | |
| os: [ 'Ubuntu', 'MacOS', 'Windows' ] | |
| python-version: [ '3.11', '3.12', '3.13', '3.14' ] | |
| experimental: [ false ] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Set up Python ${{ matrix.python-version }} with uv | |
| uses: astral-sh/setup-uv@v7 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install the project | |
| run: uv sync --locked --all-extras | |
| - name: Run mypy with nox | |
| shell: bash | |
| run: uv run nox --force-color -s mypy-${{ matrix.python-version }} | |
| - name: Run tests with nox | |
| shell: bash | |
| run: uv run nox --force-color -s tests-${{ matrix.python-version }} | |
| - name: Run safety check | |
| if: matrix.python-version == '3.11' && matrix.os == 'Ubuntu' | |
| shell: bash | |
| run: uv run nox --force-color -s safety | |
| - name: Upload coverage data | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: coverage-data-${{ matrix.python-version }}+${{ matrix.os }} | |
| path: ".coverage.*" | |
| if-no-files-found: "error" | |
| include-hidden-files: true | |
| coverage: | |
| needs: tests | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Set up Python 3.14 with uv | |
| uses: astral-sh/setup-uv@v7 | |
| with: | |
| python-version: '3.14' | |
| - name: Install the project | |
| run: uv sync --locked --all-extras | |
| - name: Download coverage data | |
| uses: actions/download-artifact@v8 | |
| with: | |
| pattern: coverage-data-* | |
| merge-multiple: true | |
| - name: Create coverage report | |
| shell: bash | |
| run: uv run nox --force-color --session=coverage -- --fmt xml | |
| - name: Upload coverage report | |
| uses: codecov/codecov-action@v5.5.2 | |
| with: | |
| token: ${{ secrets.CODECOV_TOKEN }} |