core/.github/workflows/full-pytest.yml
Shay 82f9b021fb
Some checks failed
smoke / smoke (-m "not quarantine") (pull_request) Failing after 53s
lane-shas / verify pinned lane SHAs (pull_request) Failing after 32m58s
ci: fast-lane main gate, nightly full suite, skip-safe lane-shas
Unblock the single Act runner: post-merge full-pytest runs the fast
marker (not quarantine and not slow); full non-quarantine suite moves
to nightly + workflow_dispatch. lane-shas uses job-level path detection
so docs-only PRs skip green without hanging required checks. Sync
smoke/conftest/docs CI contracts to the PR/main/nightly policy.
2026-07-14 21:02:43 -07:00

75 lines
2.3 KiB
YAML

name: full-pytest
# Post-merge FAST lane — runs on every push to main.
#
# Marker: -m "not quarantine and not slow"
# ~9.5k unit/integration tests; excludes the slow registry in conftest.py
# (soak / bench / proof / register-matrix; ~912 tests including the 16 min
# phase2 fixture floor).
#
# Why "full-pytest" still names this file:
# Keep the workflow id stable for Forgejo required-check / history matching.
# The job display name and this comment state the true contract: FAST on main.
# The complete non-quarantine suite runs in nightly-full-pytest.yml.
#
# PR gate: smoke.yml (small critical subset).
# Lane pins: lane-shas.yml.
# Full soak: nightly-full-pytest.yml (schedule + workflow_dispatch).
#
# See:
# conftest.py — QUARANTINE + SLOW_FILES / SLOW_TESTS registries
# docs/testing-lanes.md — lane commands and CI policy (SSoT)
# docs/ci-optimization.md — runner bottleneck + capacity notes
on:
push:
branches: [main]
permissions:
contents: read
concurrency:
group: full-pytest-${{ github.ref }}
cancel-in-progress: true
jobs:
pytest:
name: fast pytest (-m "not quarantine and not slow" -n 2)
runs-on: ubuntu-latest
# Headroom over ~9.5 min parallel on a 10-core host; Act 2-vCPU is slower.
timeout-minutes: 30
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 and slow excluded)
env:
PYTHONPATH: ${{ github.workspace }}
CORE_SHOWCASE_SKIP_BUDGET: "1"
run: |
uv run pytest -m "not quarantine and not slow" -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.')
"