w2.4: migrate StateStore to P8 2-file model (A-lite) #417
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| pull_request: | |
| push: | |
| jobs: | |
| sync-and-version-guard: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Check version consistency | |
| run: bash scripts/check-version-consistency.sh | |
| protocol-tests: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.11" | |
| - name: Check builtin catalog drift | |
| run: | | |
| tmp="$(mktemp)" | |
| python3 scripts/generate-builtin-catalog.py --output "$tmp" >/dev/null | |
| python3 - skills/catalog/builtin_catalog.generated.json "$tmp" <<'PY' | |
| import difflib | |
| import json | |
| from pathlib import Path | |
| import sys | |
| def normalize(path_str: str) -> list[str]: | |
| payload = json.loads(Path(path_str).read_text(encoding="utf-8")) | |
| payload.pop("generated_at", None) | |
| return json.dumps(payload, ensure_ascii=False, indent=2, sort_keys=True).splitlines() | |
| left_path, right_path = sys.argv[1], sys.argv[2] | |
| left = normalize(left_path) | |
| right = normalize(right_path) | |
| if left != right: | |
| for line in difflib.unified_diff(left, right, fromfile=left_path, tofile=right_path, lineterm=""): | |
| print(line) | |
| raise SystemExit(1) | |
| PY | |
| - name: Check context checkpoints | |
| run: python3 scripts/check-context-checkpoints.py repo --root . | |
| - name: Run hard gate tests (protocol + smoke + distribution) | |
| run: | | |
| pip install --quiet pytest | |
| python3 -m pytest \ | |
| tests/protocol/test_convention_compliance.py \ | |
| tests/test_check_readme_links.py \ | |
| tests/test_context_checkpoints.py \ | |
| tests/test_distribution.py \ | |
| tests/test_golden_snapshots.py \ | |
| tests/test_release_hooks.py \ | |
| tests/test_sopify_init_smoke.py \ | |
| -v | |
| - name: Run protocol smoke — new-plan | |
| run: python3 scripts/sopify_protocol_check.py check --scenario new-plan --fixture tests/fixtures/minimal_plan | |
| - name: Run protocol smoke — continuation | |
| run: python3 scripts/sopify_protocol_check.py check --scenario continuation --fixture tests/fixtures/minimal_plan | |
| - name: Run protocol smoke — finalize | |
| run: python3 scripts/sopify_protocol_check.py check --scenario finalize --fixture tests/fixtures/minimal_plan | |
| - name: Run install/payload bootstrap smoke | |
| run: python3 scripts/check-install-payload-bundle-smoke.py |