-
Notifications
You must be signed in to change notification settings - Fork 264
Closed as not planned
Labels
cookieIssue Monster Loves Cookies!Issue Monster Loves Cookies!
Description
🏥 CI Failure Investigation - Run #21783265537
Summary
- Commit 01b1e42 died in CI because the JS cross-language frontmatter hash regression and the canary coverage guard now both fail before the rest of the pipeline can finish.
Failure Details
- Run: 21783265537
- Commit: 01b1e42
- Trigger: push
Root Cause Analysis
js-integration-live-api:frontmatter_hash_github_api.test.cjsasserts that the JS hash equals Go’s hash for.github/workflows/audit-workflows.mdbut Go now returnsff56a35b191afe28f76a09217de1597695a225e8f41502cc815a0a9e0eb2f96ewhile the JS implementation still producesbb5cbd9552401591e9476ae803f1736a88dca3f654f725dadffa5a7dbc31d639, so the test immediately fails.canary_go:compare-test-coverage.shcomplains that 1655 tests are missing becauselist-all-tests.shreports 4066 defined tests while the executed-artifact list only contains 2411 entries (coverage drops to 59.3%). The missing names (e.g.,TestASCIILogoAlignment,TestAWFInstallationStepDefaultVersion,TestActionFriendlyGitHubToolsets,TestActivationJobWithIfConditionHasPlaceholderStep, etc.) are never run by the current unit/integration patterns.
Failed Jobs and Errors
js-integration-live-api:frontmatter_hash_github_api.test.cjs→ AssertionError expecting the Go hashff56a35b...but receivingbb5cbd95....canary_go:compare-test-coverage.sh all-tests.txt executed-tests.txt→ ❌ FAILURE: Found 1655 tests that are NOT being executed in CI (Test coverage: 59.3% with 2411/4066 tests).
Investigation Findings
- The cross-language test is hard-coded against Go’s canonical hash, so the JS parser must be updated to reproduce Go’s newer output for
audit-workflows.mdbefore the test can pass. - The coverage guard is currently comparing the full list of defined tests with whatever the matrix ran; since the matrix does not exercise the ~1655 workflow/CLI tests listed above, the guard fails even when those tests are intentionally skipped.
Recommended Actions
- Update the JavaScript
computeFrontmatterHashpath (and/or the test fixture) so thatcomputeFrontmatterHash('.github/workflows/audit-workflows.md')returns the Go hashff56a35b191afe28f76a09217de1597695a225e8f41502cc815a0a9e0eb2f96e, then rerunnpm test -- frontmatter_hash_github_api.test.cjsto confirm parity. - Adjust
scripts/list-all-tests.sh/compare-test-coverage.shor expand the integration/job matrix so that the missing tests listed in the failure output are actually executed, keeping the coverage guard aligned with the set of tests CI is supposed to run.
Prevention Strategies
- Run the cross-language frontmatter hash regression locally (or via a lint job) whenever workflows or the hash algorithm change so both Go and JS implementations stay in sync before pushing.
- Keep the coverage guard’s gold list in lockstep with the tests our jobs actually execute (e.g., maintain a curated allowlist or extend the matrix) so that the guard raises a red flag only when truly uncovered tests appear.
AI Team Self-Improvement
- When introducing workflow changes, re-run the frontmatter hash cross-language test and update JS hash expectations before finalizing the change.
- Whenever new Go tests are added, review
scripts/list-all-tests.shand thecanary_gomatrix to ensure those tests are either executed or intentionally excluded so the coverage guard stays meaningful.
Historical Context
- No prior investigations for this run; similar hash or coverage guard failures have not been reported in the repository’s issue tracker yet, so this appears to be a new regression tied to the current code/test set.
AI generated by CI Failure Doctor
To add this workflow in your repository, run
gh aw add githubnext/agentics/workflows/ci-doctor.md@ea350161ad5dcc9624cf510f134c6a9e39a6f94d. See usage guide.
- expires on Feb 8, 2026, 4:46 PM UTC
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
cookieIssue Monster Loves Cookies!Issue Monster Loves Cookies!