core/.github/workflows/full-pytest.yml
Shay 4de9e76e9a
fix(core): lock python and extend rust cga surface (#925)
* 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
2026-07-02 15:32:08 -07:00

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.')
"