- Drop push-triggered runs for non-master branches; pull_request already covers every PR commit, so push+pull_request was running the full 14-job matrix twice per push (28 jobs). - Only run the full Python 3.8-3.14 matrix on ubuntu-latest. macOS runners bill at 10x Linux minutes; test just the oldest and newest supported Python there to catch platform-specific issues. - Net effect: 28 jobs per PR push -> 9 (7 Linux + 2 macOS). Co-authored-by: Maxim Shulga <maxim.shulga@alludo.com> Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
38 lines
937 B
YAML
38 lines
937 B
YAML
name: Run tests
|
|
|
|
on:
|
|
pull_request:
|
|
push:
|
|
branches: [master]
|
|
|
|
jobs:
|
|
test:
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ubuntu-latest]
|
|
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]
|
|
include:
|
|
# macOS runners cost 10x Linux minutes - only test the oldest
|
|
# and newest supported Python there to catch platform-specific
|
|
# issues without running the full matrix twice.
|
|
- os: macos-latest
|
|
python-version: "3.8"
|
|
- os: macos-latest
|
|
python-version: "3.14"
|
|
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
|
|
- name: Install uv and set the Python version
|
|
uses: astral-sh/setup-uv@v7
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
|
|
- name: Install the project
|
|
run: uv sync --all-extras --dev
|
|
|
|
- name: Run tests
|
|
run: uv run pytest tests
|