* fix(core): lock python and extend rust cga surface * fix(workbench): use portable python spec for venv setup * perf(cga): avoid duplicate null-cone geometric product
65 lines
1.8 KiB
YAML
65 lines
1.8 KiB
YAML
name: full-pytest
|
|
|
|
# Post-merge validation — runs the full pytest suite on every push to main.
|
|
# PRs are gated by the faster smoke workflow (smoke.yml); this catches
|
|
# anything outside the smoke suite within minutes of merge.
|
|
#
|
|
# Quarantined tests are excluded via the conftest.py QUARANTINE registry.
|
|
# The intent is a ratchet: once a test is removed from the registry it
|
|
# must keep passing on this gate.
|
|
#
|
|
# See:
|
|
# conftest.py — the QUARANTINE registry (one entry per quarantined test)
|
|
# docs/test-debt-quarantine.md — cluster diagnoses + removal policy
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
concurrency:
|
|
group: full-pytest-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
pytest:
|
|
name: full pytest (-m "not quarantine" -n 2)
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 45
|
|
|
|
steps:
|
|
- name: checkout
|
|
uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 1
|
|
|
|
- name: set up uv
|
|
uses: astral-sh/setup-uv@v5
|
|
with:
|
|
python-version: '3.12.13'
|
|
enable-cache: true
|
|
|
|
- name: install dependencies
|
|
run: |
|
|
uv pip install -e ".[dev]" pyyaml
|
|
|
|
- name: pytest (parallel, quarantine excluded)
|
|
env:
|
|
PYTHONPATH: ${{ github.workspace }}
|
|
CORE_SHOWCASE_SKIP_BUDGET: "1"
|
|
run: |
|
|
uv run pytest -m "not quarantine" -n 2 --tb=short -q --maxfail=10
|
|
|
|
- name: report quarantine size (informational)
|
|
if: always()
|
|
env:
|
|
PYTHONPATH: ${{ github.workspace }}
|
|
run: |
|
|
uv run python -c "
|
|
import sys
|
|
sys.path.insert(0, '.')
|
|
from conftest import QUARANTINE
|
|
print(f'::notice title=Quarantine size::{len(QUARANTINE)} tests currently quarantined. Goal: shrink this number.')
|
|
"
|