ci: pin gh-aw v0.86.2 and add strict compile gate (all four workflows) - #1886
Conversation
- Pin gh-aw to v0.86.2 in the \ est\ job so compiler version is deterministic across runs (was unpinned with \gh extension install\). - Add \gh-aw-compile\ job that strict-compiles squad, squad-implement-worker, squad-review, and squad-deps-worker on every PR and push. Failures accumulate before exit so all four results are visible in one run. A compiler that exits 0 without emitting a lock file also fails the gate (silent-success is a gate gap). Same v0.86.2 pin used in both jobs. Required-check setup (external, cannot be enforced from repo code): Enable ruleset 12703724, add refs/heads/dev and refs/heads/main, require \Squad CI / gh-aw strict compile\ and \Squad CI / test\. Addresses: gh-aw version non-determinism and the missing dedicated compile gate that allowed #1873 and #1874 to merge with failing checks. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
🟢 Impact Analysis — PR #1886Risk tier: 🟢 LOW 📊 Summary
🎯 Risk Factors
📦 Modules Affectedci-workflows (1 file)
This report is generated automatically for every PR. See #733 for details. |
🛫 PR Readiness Check
PR Scope: 🔧 Infrastructure
|
| Status | Check | Details |
|---|---|---|
| ✅ | Single commit | 1 commit — clean history |
| ✅ | Not in draft | Ready for review |
| ✅ | Branch up to date | Up to date with dev |
| ❌ | Copilot review | No Copilot review yet — it may still be processing |
| ✅ | Changeset present | No source files changed — changeset not required |
| ✅ | Scope clean | No .squad/ or docs/proposals/ files |
| ✅ | No merge conflicts | No merge conflicts |
| ✅ | Copilot threads resolved | No Copilot review threads |
| ❌ | CI passing | 12 check(s) still running |
Files Changed (1 file, +85 −1)
| File | +/− |
|---|---|
.github/workflows/squad-ci.yml |
+85 −1 |
Total: +85 −1
This check runs automatically on every push. Fix any ❌ items and push again.
See CONTRIBUTING.md and PR Requirements for details.
🏗️ Architectural Review
Automated architectural review — informational only. |
There was a problem hiding this comment.
🟢 Approval recommended
The changes are narrowly scoped to CI, deterministically pin the compiler version, and the new strict compile gate appears fail-closed and aligned with existing repo compile-layout expectations.
Pull request overview
This PR makes the repository’s GitHub Actions workflow compilation deterministic and “required-check friendly” by pinning the gh-aw compiler version and adding a dedicated strict compile gate that runs on every PR and push.
Changes:
- Pin
gh-awextension installation tov0.86.2in the existingtestjob. - Add a new
gh-aw-compilejob that compiles all four workflow sources with--strictand fails closed if any compile fails or any expected.lock.ymloutput is missing. - Emit a clear per-workflow/pass-fail + lock-file status report into
$GITHUB_STEP_SUMMARY.
File summaries
| File | Description |
|---|---|
| .github/workflows/squad-ci.yml | Pins gh-aw to v0.86.2 and adds an unconditional “gh-aw strict compile” job that compiles and verifies lock-file emission for all four workflow sources. |
Review details
- Files reviewed: 1/1 changed files
- Comments generated: 0
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Problem
PRs #1873 and #1874 merged while test checks were failing because:
gh-awcompiler version was unpinned —gh extension install github/gh-awwith no--pinflag means different runs may use different compiler versions, making results non-deterministic.npm testsuite, making it impractical to mark as a lightweight required check.main) hadenforcement: disabledand no required status checks, so PRs could merge regardless of check status.What this PR does
One file changed:
.github/workflows/squad-ci.ymlPins gh-aw to
v0.86.2in the existingtestjob's "Install gh-aw extension" step. Same version pinned in the new compile job — both jobs see identical compiler behaviour.Adds
gh-aw-compilejob (name: gh-aw strict compile) that runs unconditionally on every PR and push:gh-aw v0.86.2(pinned)workflows/→<tmpdir>/.github/workflows/+git init(same layout as real consumer repos)squad,squad-implement-worker,squad-review,squad-deps-workerwith--strict --approve --no-check-update.lock.ymlfiles were emitted (a compiler that exits 0 without writing output is a silent-success gap — treated as failure)$GITHUB_STEP_SUMMARYNo changeset required — only CI configuration changed, no package source files touched.
DoD checklist
--pin v0.86.2)External action required (cannot be enforced from repo code)
To close the merge-with-failed-checks gap permanently, after merging:
refs/heads/devANDrefs/heads/mainSquad CI / gh-aw strict compileSquad CI / testGitHub rulesets are external configuration — they cannot be committed to the repo. The exact ruleset ID, URL, and required check names are documented in the workflow comment at line 680–689 of
squad-ci.yml.Does not overlap