Compare commits

...

4 Commits

Author SHA1 Message Date
Greyson LaLonde
a39d1b6ebb Reduce test timeout to 30s 2025-07-03 19:16:03 -04:00
Greyson LaLonde
d7de94ff78 perf: increase test parallelization to 8 groups and remove redundant cache 2025-07-02 21:41:12 -04:00
Greyson LaLonde
8c3372ed57 fix: add job name to match branch protection rules 2025-07-02 20:18:18 -04:00
Greyson LaLonde
9492788e10 tests: speed up GitHub Actions with parallelization
- Add pytest-xdist and pytest-split to dev dependencies
- Split tests into 4 parallel groups per Python version
- Enable CPU-level parallelization with -n auto
- Add fail-fast strategy and maxfail=3
- Improve caching for Python packages
2025-07-02 20:03:41 -04:00
2 changed files with 20 additions and 2 deletions

View File

@@ -7,14 +7,18 @@ permissions:
env:
OPENAI_API_KEY: fake-api-key
PYTHONUNBUFFERED: 1
jobs:
tests:
name: tests (${{ matrix.python-version }})
runs-on: ubuntu-latest
timeout-minutes: 15
strategy:
fail-fast: true
matrix:
python-version: ['3.10', '3.11', '3.12', '3.13']
group: [1, 2, 3, 4, 5, 6, 7, 8]
steps:
- name: Checkout code
uses: actions/checkout@v4
@@ -23,6 +27,9 @@ jobs:
uses: astral-sh/setup-uv@v3
with:
enable-cache: true
cache-dependency-glob: |
**/pyproject.toml
**/uv.lock
- name: Set up Python ${{ matrix.python-version }}
run: uv python install ${{ matrix.python-version }}
@@ -30,5 +37,14 @@ jobs:
- name: Install the project
run: uv sync --dev --all-extras
- name: Run tests
run: uv run pytest --block-network --timeout=60 -vv
- name: Run tests (group ${{ matrix.group }} of 8)
run: |
uv run pytest \
--block-network \
--timeout=30 \
-vv \
--splits 8 \
--group ${{ matrix.group }} \
--durations=10 \
-n auto \
--maxfail=3

View File

@@ -83,6 +83,8 @@ dev-dependencies = [
"pytest-recording>=0.13.2",
"pytest-randomly>=3.16.0",
"pytest-timeout>=2.3.1",
"pytest-xdist>=3.6.1",
"pytest-split>=0.9.0",
]
[project.scripts]