feat(cli): add a bar shorthand for the pv-style command #332
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 | |
| # Job-level continue-on-error, not only step-level: a job that hits | |
| # timeout-minutes is cancelled rather than failed, which a step-level | |
| # continue-on-error cannot absorb -- an experimental env (e.g. | |
| # docs-linkcheck waiting on slow external servers) would still mark | |
| # the whole run cancelled. | |
| continue-on-error: ${{ matrix.experimental || false }} | |
| 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: docs-demos | |
| - python-version: '3.14' | |
| tox-env: docs-linkcheck | |
| experimental: true | |
| - python-version: '3.14' | |
| tox-env: readme | |
| - 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 |