Repository navigation
opportunistic support for python 3.14 #89
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
| # .github/workflows/test.yml | |
| # Primary CI workflow that runs on every push and PR | |
| # - Builds the package | |
| # - Runs all tests | |
| # - Runs pre-commit hooks for code quality | |
| # - Full matrix testing on pull requests and workflow_dispatch | |
| # - Minimal testing (ubuntu-latest + Python 3.13) on push | |
| name: Test | |
| on: [push, pull_request, workflow_dispatch] | |
| jobs: | |
| test: | |
| name: Test Python ${{ matrix.python-version }} on ${{ matrix.os }} | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| # Testing strategy: | |
| # - Push events: Limited testing (ubuntu-latest + Python 3.13 only) for quick feedback | |
| # - Pull requests and manual triggers: Full matrix testing across all platforms and Python versions | |
| matrix: | |
| os: >- | |
| ${{ | |
| github.event_name == 'push' | |
| && fromJSON('["ubuntu-latest"]') | |
| || fromJSON('["ubuntu-latest", "macos-latest", "windows-latest"]') | |
| }} | |
| python-version: >- | |
| ${{ | |
| github.event_name == 'push' | |
| && fromJSON('["3.13"]') | |
| || fromJSON('["3.8", "3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]') | |
| }} | |
| fail-fast: false | |
| defaults: | |
| run: | |
| shell: bash -l {0} | |
| permissions: | |
| id-token: write | |
| contents: read | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| cache: 'pip' | |
| - name: Install package with dev dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| python -m pip install -e ".[dev]" | |
| - name: Run tests | |
| run: pytest | |
| - name: Run pre-commit hooks | |
| run: pre-commit run --all-files |