-
Notifications
You must be signed in to change notification settings - Fork 16
84 lines (69 loc) · 2.97 KB
/
Copy pathci.yml
File metadata and controls
84 lines (69 loc) · 2.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
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: 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_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 — continuation (clarification pending)
run: python3 scripts/sopify_protocol_check.py check --scenario continuation --fixture tests/fixtures/clarification_pending
- name: Run protocol smoke — continuation (decision pending)
run: python3 scripts/sopify_protocol_check.py check --scenario continuation --fixture tests/fixtures/decision_pending
- 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