Some checks failed
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').
70 lines
2.4 KiB
YAML
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
|