Root cause of the simultaneous lane-shas failures on PRs #46 and #47: workflows installed with unlocked 'uv pip install -e .' against floor-only specs (numpy>=1.26, ...) while the repo maintains uv.lock — so a PyPI release landing between runs shifts the runner's resolved set, and the byte-exact lane SHA pins move with it. Timeline: main lane run green at 23:40Z, both PR runs (diffs no lane executes) red after 00:02Z; the identical trees verify 9/9 locally against the locked venv, and 'uv lock --check' is clean. All six workflows now 'uv sync --locked' (--extra dev where [dev] was installed) — CI tests the locked universe, so lane pins can only move when code moves. Locked-sync also fails loudly on a stale lock instead of silently resolving fresh. Self-validating: this PR's own lane-shas run uses this branch's workflow. [Verification]: smoke suite passed locally (175 passed); lane repro on the failing PRs' tree: 9/9 pinned SHAs; uv lock --check clean.
59 lines
1.7 KiB
YAML
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 sync --locked --extra dev
|
|
|
|
- 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
|