diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f29a611..ec2c6ac 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -32,6 +32,20 @@ jobs: - name: Checkout uses: actions/checkout@v7 + - name: Architecture validator matches core + run: | + # The validator is a verbatim copy of the canonical file in + # exelearning/exelearning. Fix it there and re-copy — never edit it + # here, or the copies drift apart silently. + curl -fsSL --retry 3 \ + https://raw.githubusercontent.com/exelearning/exelearning/main/scripts/architecture-records.mts \ + -o /tmp/architecture-records.core.mts + if ! diff -u /tmp/architecture-records.core.mts tools/architecture-records.mts; then + echo "::error file=tools/architecture-records.mts::drifted from exelearning/exelearning@main." + echo "Re-copy it from core; do not patch it here." + exit 1 + fi + echo "In sync with core ($(shasum -a 256 tools/architecture-records.mts | cut -c1-16)…)." - name: Validate architecture records run: node tools/architecture-records.mts check