core/.github/workflows/smoke.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

59 lines
1.7 KiB
YAML

name: smoke
# Fast PR gate — runs the smoke suite on every PR push.
# Covers: chat runtime, pipeline, architectural invariants, audio sensorium
# (tests/test_audio_*.py — compiler/eval-gates/mount/CRDT-merge/teachers, ~3s),
# and identity falsifiability (tests/test_pack_measurements_phase2.py, ADR-0043
# — ratified packs diverge directionally; pack-invariant refusal floor; no
# fabrication). The falsifiability lane adds ~4 min but blocks-on-regression.
#
# Post-merge on main: full-pytest.yml runs the FAST lane
# (-m "not quarantine and not slow"). Soak / proof / register-matrix coverage
# is nightly-full-pytest.yml (not on the PR critical path).
# See docs/testing-lanes.md.
on:
pull_request:
branches: [main]
permissions:
contents: read
concurrency:
group: smoke-${{ github.ref }}
cancel-in-progress: true
jobs:
smoke:
name: smoke (-m "not quarantine")
runs-on: ubuntu-latest
timeout-minutes: 10
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 smoke suite
env:
PYTHONPATH: ${{ github.workspace }}
run: |
uv run pytest -m "not quarantine" --tb=short -q \
tests/test_chat_runtime.py \
tests/test_achat.py \
tests/test_runtime_config.py \
tests/test_cognitive_turn_pipeline.py \
tests/test_architectural_invariants.py \
tests/test_audio_*.py \
tests/test_pack_measurements_phase2.py