ci(gh-aw): add CI guard for lock-file drift and compiler-version skew - #1619
Open
TheLarkInn wants to merge 1 commit into
Open
ci(gh-aw): add CI guard for lock-file drift and compiler-version skew#1619TheLarkInn wants to merge 1 commit into
TheLarkInn wants to merge 1 commit into
Conversation
Add an aw-lock-drift job to ci.yml that installs a pinned gh-aw version (new GH_AW_VERSION env var, currently v0.86.2), runs gh aw compile, and fails when: - any tracked file under .github/workflows or .github/aw drifts from the committed state, - the compiler emits untracked files (orphaned .md sources), - lock files report mixed compiler_version headers or a version that does not match the pin. The install step removes any preinstalled gh-aw first so the pin always wins. CLAUDE.md now points to GH_AW_VERSION as the canonical pin and documents the enforcement job. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a CI enforcement guard to ensure GitHub Agentic Workflows (gh-aw) generated lock files stay in sync with their .md sources and that all locks are compiled with a single, pinned gh-aw compiler version.
Changes:
- Introduces a new
aw-lock-driftjob in CI that installs a pinned gh-aw version, recompiles workflows, and fails on drift, untracked outputs, or compiler-version skew. - Centralizes the gh-aw compiler pin as
GH_AW_VERSIONin.github/workflows/ci.yml. - Updates
CLAUDE.mdto document the canonical pin location and the CI enforcement behavior.
Show a summary per file
| File | Description |
|---|---|
CLAUDE.md |
Documents GH_AW_VERSION as the canonical gh-aw pin and describes the new enforcement job. |
.github/workflows/ci.yml |
Adds GH_AW_VERSION and the aw-lock-drift job to detect lock drift, untracked outputs, and compiler skew. |
Review details
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
- Files reviewed: 2/2 changed files
- Comments generated: 0
- Review effort level: Lite
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #1619 +/- ##
=======================================
Coverage 97.57% 97.57%
=======================================
Files 127 127
Lines 39102 39102
Branches 974 974
=======================================
Hits 38154 38154
Misses 853 853
Partials 95 95 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
4 tasks
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #1390
What
Adds an
aw-lock-driftjob toci.ymlso stale gh-aw lock files fail CI instead of relying on the honour system:GH_AW_VERSION: v0.86.2env var is the single canonical pin (no floating tolatest). The install step removes any preinstalled gh-aw copy first so the pin always wins (gh extension installfails when the extension already exists).git diff --exit-code -- .github/workflows .github/awcatches locks not regenerated from their.mdsources.git ls-files --others --exclude-standardcatches the orphaned-source class of bug.*.lock.ymlmust report exactly onecompiler_version, and it must equalGH_AW_VERSION.CLAUDE.mdnow namesGH_AW_VERSIONas the canonical pin and documents the enforcement job.Acceptance criteria
.mdwithout committing the regenerated.lock.yml(drift check)gh aw compileproduces untracked files (untracked-output check)latest.lock.yml→ untracked failure; mixedcompiler_versionheaders → skew failure; uniform wrong version → pin-mismatch failure. A cleangh aw compileat the pinned version produces zero drift on currentmain.Co-authored-by: Copilot App 223556219+Copilot@users.noreply.github.com