fix(ci): validate rails from fresh per-attempt checkouts - #157
Merged
Merged
Conversation
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.
Persistent CI runners can fail checkout with
fatal: missing blob objectbefore any rails validator runs. Mono run 36882279231/job 110439354952 reproduced this ongha-runner-pve50-3-b; fetching its exact merge SHA into a new repository succeeded and resolved the allegedly missing blob.Checkout now uses a fresh directory containing the workflow run ID and attempt. Every existing run step validates that same checkout. The pinned action, permissions, runner selection, timeout, and validators remain intact.
Validation: 5 Ruby tests / 48 assertions and 4 Python tests pass. The new regression removes a real blob from a disposable reused checkout, proves Git integrity fails, clones into the configured fresh directory, runs the actual YAML preflight and workflow validator, proves malformed YAML still fails, and preserves a sibling cache sentinel.
All seven unchanged workflow run steps also passed when executed locally from the exact PR source. Independent review of both changed files found no actionable defects. The optional hosted
validatecheck remains queued without an assigned runner; this is not a hosted success receipt. The consuming Mono PR must pass its mandatory current-head rails check after updating the pinned workflow SHA.No-Issue: causal repair for the checkout blocker discovered while delivering dx-corp/mono#11663.