chore: improve python-progressbar maintenance path #297
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: tox | |
| on: | |
| push: | |
| branches: [develop] | |
| pull_request: | |
| workflow_dispatch: | |
| concurrency: | |
| group: "${{ github.workflow }}-${{ github.ref }}" | |
| cancel-in-progress: true | |
| permissions: | |
| contents: read | |
| jobs: | |
| perf-budget: | |
| name: Performance budget | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Set up Python 3.13 | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: '3.13' | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| python -m pip install -r tests/requirements.txt | |
| python -m pip install -e . | |
| - name: Performance budget | |
| run: python -m pytest tests/test_perf_budget.py -v --no-cov | |
| build: | |
| name: tox (${{ matrix.tox-env }}) | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - python-version: '3.10' | |
| tox-env: py310 | |
| - python-version: '3.11' | |
| tox-env: py311 | |
| - python-version: '3.12' | |
| tox-env: py312 | |
| - python-version: '3.13' | |
| tox-env: py313 | |
| - python-version: '3.14' | |
| tox-env: py314 | |
| # Python 3.15 is a pre-release and currently unsupported by | |
| # typing_extensions (no released version survives | |
| # `from typing_extensions import *` on 3.15 because | |
| # no_type_check_decorator is still listed in __all__ after its | |
| # removal from typing), which breaks the python_utils import. | |
| # Failures are advisory until upstream catches up. | |
| - python-version: '3.15-dev' | |
| tox-env: py315 | |
| experimental: true | |
| - python-version: '3.14' | |
| tox-env: docs | |
| - python-version: '3.14' | |
| tox-env: ruff | |
| - python-version: '3.14' | |
| tox-env: codespell | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| allow-prereleases: true | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip tox | |
| - name: Test with tox | |
| # Step-level continue-on-error keeps the job green for | |
| # experimental (pre-release Python) environments while still | |
| # showing the failing step in the logs | |
| continue-on-error: ${{ matrix.experimental || false }} | |
| run: tox -e ${{ matrix.tox-env }} | |
| windows: | |
| name: tox (windows / py312) | |
| runs-on: windows-latest | |
| timeout-minutes: 10 | |
| env: | |
| # Force UTF-8 I/O so unicode-marker tests (e.g. test_unicode) don't | |
| # hit UnicodeEncodeError against the legacy Windows code page under | |
| # pytest's fd-level capture. | |
| PYTHONUTF8: '1' | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Set up Python 3.12 | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: '3.12' | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip tox | |
| - name: Test with tox | |
| # The 100% coverage gate cannot be met on Windows: POSIX-only | |
| # branches never execute there, so run without the coverage gate | |
| # (`--no-cov` posarg). Linux jobs still enforce full coverage. | |
| run: tox -e py312 -- --no-cov |