core/.github/workflows/smoke.yml
Shay 819cf78b31
Some checks failed
lane-shas / verify pinned lane SHAs (push) Has been skipped
smoke / smoke (-m "not quarantine") (push) Has been skipped
smoke / smoke (-m "not quarantine") (pull_request) Successful in 5m36s
lane-shas / verify pinned lane SHAs (pull_request) Has been cancelled
ci: hybrid mirror push triggers for feature branches (smoke + lane-shas)
GitHub never sees Forgejo PRs, so pull_request-gated workflows never ran on
the mirror for feature branches. Per the hybrid workflow guide convention,
smoke + lane-shas now also trigger on non-main branch pushes.

- Job guards (github.server_url) keep the Forgejo Act host from running each
  branch twice (push + pull_request) — the run #167 OOM class.
- lane-shas extends its skip-safe pin-relevant-path policy to branch pushes
  (merge-base vs origin/main); main pushes keep always-verify.
- full-pytest stays main-only (a per-push ~73-min trigger would torch the
  Actions minute budget).

Note: GitHub-side runs stay dead until the AssetOverflow account billing
lock is cleared ('job was not started because your account is locked').
2026-07-15 12:58:05 -07:00

70 lines
2.4 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]
# Hybrid mirror CI (docs: Agent Workflow Guide — Hybrid Forgejo & GitHub
# Actions): PR metadata lives on Forgejo only, so GitHub never sees
# pull_request events. Mirrored feature-branch pushes run this same gate on
# GitHub-hosted runners instead. The job guard below keeps the Forgejo Act
# host from running each branch twice (push + pull_request).
push:
branches-ignore: [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
# Push events are the GitHub-mirror stand-in for Forgejo PRs; skip them on
# the Forgejo Act host, which already covers branches via pull_request
# (avoids double-running the 4GB host — the run #167 OOM class).
if: github.event_name == 'pull_request' || github.server_url == 'https://github.com'
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