Skip to content

opportunistic support for python 3.14 #89

opportunistic support for python 3.14

opportunistic support for python 3.14 #89

Workflow file for this run

# .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