Assistant: codex Assistant-Model: gpt-5.6-sol Assistant-Session: 01a02994-7685-7940-bf34-3555b8256018
54 lines
1.6 KiB
YAML
54 lines
1.6 KiB
YAML
# Canonical CI smoke template (tier 1 routing drill).
|
|
# Copy to: .forgejo/workflows/ci-smoke.yaml in consumer repos.
|
|
name: CI Smoke
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
source-contract:
|
|
# The host lane is intentionally minimal and does not provide the Node
|
|
# runtime required by actions/checkout. Run source validation in the
|
|
# documented disposable container lane instead.
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Check out source
|
|
uses: actions/checkout@v4
|
|
- name: Prepare source-contract runtime
|
|
run: |
|
|
set -eu
|
|
apt-get update
|
|
apt-get install -y --no-install-recommends make python3 python3-yaml
|
|
- name: Validate S1 source contracts
|
|
run: |
|
|
set -eu
|
|
python3 -c 'import yaml'
|
|
python3 scripts/inventory_contract.py
|
|
python3 scripts/baseline_contract.py --check-repo
|
|
python3 scripts/handoff_contract.py
|
|
python3 scripts/sops_rotation.py --check
|
|
python3 scripts/s1_receipt.py docs/evidence/s1-receipts/*.json
|
|
python3 -m unittest discover -s tests -v
|
|
make check-secrets
|
|
|
|
host-smoke:
|
|
runs-on: self-hosted
|
|
steps:
|
|
- name: Routing probe (host runner)
|
|
run: |
|
|
set -eu
|
|
echo "repository=${GITHUB_REPOSITORY:-unknown}"
|
|
echo "sha=${GITHUB_SHA:-unknown}"
|
|
echo "runner=${RUNNER_NAME:-unknown}"
|
|
uname -a
|
|
|
|
container-smoke:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Routing probe (container label)
|
|
run: |
|
|
set -eu
|
|
echo "container-smoke ok for ${GITHUB_REPOSITORY:-unknown}"
|