This repository was archived by the owner on Jul 5, 2026. It is now read-only.
Update to support Python 3.10–3.14 and to fully drop Python 3.9 across packaging, CI, tooling, and docs #283
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: Run Python linters and tests | |
| on: | |
| pull_request: | |
| paths: | |
| - '**/*.py' | |
| - 'poetry.lock' | |
| - 'pyproject.toml' | |
| - '.github/workflows/python-check.yml' | |
| branches: | |
| - master | |
| - dev | |
| - release/* | |
| jobs: | |
| lint: | |
| name: Run Python linters | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] | |
| poetry-version: ["2.2.1"] | |
| steps: | |
| - name: "Checkout" | |
| uses: actions/checkout@v6 | |
| - name: "Install Poetry ${{matrix.poetry-version}}" | |
| run: pipx install poetry==${{matrix.poetry-version}} | |
| - name: "Setup Python ${{matrix.python-version}}" | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: ${{matrix.python-version}} | |
| cache: 'poetry' | |
| - name: "Install dependencies" | |
| run: make install | |
| - name: "Run flake8" | |
| run: make flake | |
| - name: "Run mypy" | |
| run: make mypy | |
| - name: "Run black lint" | |
| run: make black-lint | |
| - name: "Run Poetry check" | |
| run: make poetry-check | |
| test: | |
| name: Run Python tests | |
| runs-on: ${{matrix.os}} | |
| strategy: | |
| matrix: | |
| python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] | |
| poetry-version: ["2.2.1"] | |
| browser: ["chromium", "firefox", "webkit"] | |
| os: ["ubuntu-latest", "windows-latest", "macos-latest"] | |
| steps: | |
| - name: "Checkout" | |
| uses: actions/checkout@v6 | |
| - name: "Install Poetry ${{matrix.poetry-version}}" | |
| run: pipx install poetry==${{matrix.poetry-version}} | |
| - name: "Setup Python ${{matrix.python-version}}" | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: ${{matrix.python-version}} | |
| cache: "poetry" | |
| - name: Install dependencies | |
| run: make install | |
| - name: "Install ${{matrix.browser}} dependencies" | |
| run: make browser-install browser=${{matrix.browser}} | |
| - name: "Run pytest" | |
| run: make test browser=${{matrix.browser}} | |
| - name: "Upload coverage reports to Codecov" | |
| if: matrix.python-version == '3.14' && matrix.os == 'ubuntu-latest' && matrix.browser == 'chromium' && github.actor != 'dependabot[bot]' | |
| uses: codecov/codecov-action@v5 | |
| with: | |
| token: ${{ secrets.CODECOV_TOKEN }} |