chore(deps): lock file maintenance #4896
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 | |
| on: | |
| pull_request: | |
| types: [opened, synchronize, reopened] | |
| push: | |
| branches: [main] | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} | |
| cancel-in-progress: ${{ github.event_name == 'pull_request' }} | |
| env: | |
| PYTHON_VERSION: '3.14' | |
| # renovate: datasource=pypi depName=uv | |
| UV_VERSION: '0.9.9' | |
| permissions: {} | |
| jobs: | |
| quality: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Check out | |
| uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
| with: | |
| persist-credentials: false | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@5a7eac68fb9809dea845d802897dc5c723910fa3 # v7.1.3 | |
| with: | |
| version: ${{ env.UV_VERSION }} | |
| enable-cache: true | |
| cache-dependency-glob: 'uv.lock' | |
| - name: Install Python | |
| uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0 | |
| with: | |
| python-version: ${{ env.PYTHON_VERSION }} | |
| - name: Install Python dependencies | |
| # We want to install all groups here to make sure that deptry has access to all dependencies for the inspection, | |
| # even development ones. | |
| run: uv sync --frozen | |
| - name: Setup Rust toolchain | |
| run: rustup component add clippy rustfmt | |
| - name: Load pre-commit cache | |
| uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 | |
| with: | |
| path: ~/.cache/pre-commit | |
| key: pre-commit-${{ env.PYTHON_VERSION }}-${{ hashFiles('.pre-commit-config.yaml') }} | |
| - name: Run pre-commit | |
| run: uvx pre-commit@${PRE_COMMIT_VERSION} run --all-files --show-diff-on-failure | |
| env: | |
| # renovate: datasource=pypi depName=pre-commit | |
| PRE_COMMIT_VERSION: '4.4.0' | |
| # Skip mypy hook, as mypy is run in "tests" job. | |
| SKIP: mypy | |
| - name: Inspect dependencies with deptry | |
| run: uv run deptry python | |
| tests: | |
| strategy: | |
| matrix: | |
| os: | |
| - name: linux | |
| image: ubuntu-24.04 | |
| - name: macos | |
| image: macos-15 | |
| - name: windows | |
| image: windows-2025 | |
| python-version: | |
| - '3.10' | |
| - '3.11' | |
| - '3.12' | |
| - '3.13' | |
| - '3.14' | |
| - 'pypy3.11' | |
| fail-fast: false | |
| runs-on: ${{ matrix.os.image }} | |
| name: ${{ matrix.os.name }} (${{ matrix.python-version }}) | |
| steps: | |
| - name: Check out | |
| uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
| with: | |
| persist-credentials: false | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@5a7eac68fb9809dea845d802897dc5c723910fa3 # v7.1.3 | |
| with: | |
| version: ${{ env.UV_VERSION }} | |
| enable-cache: true | |
| cache-dependency-glob: 'uv.lock' | |
| cache-suffix: ${{ matrix.python-version }} | |
| - name: Install Python | |
| uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install Python dependencies | |
| run: uv sync --frozen --no-default-groups --group test --group typing | |
| - name: Check typing | |
| run: uv run --no-default-groups mypy | |
| if: ${{ matrix.os.name == 'linux' }} | |
| - name: Run unit tests | |
| run: uv run --no-default-groups pytest tests/unit --cov --cov-config=pyproject.toml --cov-report=xml | |
| - name: Run functional tests | |
| run: uv run --no-default-groups pytest tests/functional -n auto --dist loadgroup | |
| env: | |
| PYTHONIOENCODING: 'utf-8' | |
| - name: Upload coverage reports to Codecov | |
| uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5 | |
| env: | |
| CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | |
| if: ${{ matrix.os.name == 'linux' && matrix.python-version == env.PYTHON_VERSION }} | |
| check-docs: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Check out | |
| uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
| with: | |
| persist-credentials: false | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@5a7eac68fb9809dea845d802897dc5c723910fa3 # v7.1.3 | |
| with: | |
| version: ${{ env.UV_VERSION }} | |
| enable-cache: true | |
| cache-dependency-glob: 'uv.lock' | |
| - name: Install Python | |
| uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0 | |
| with: | |
| python-version: ${{ env.PYTHON_VERSION }} | |
| - name: Check if documentation can be built | |
| run: uv run --only-group docs mkdocs build --strict |