Repository navigation
fix(validation-cases): skip standalone candidate resolve in chain mode - #143
Merged
Merged
Conversation
The caller workflow_dispatch event leaks through workflow_call, so a manually dispatched chain also satisfies github.event_name == 'workflow_dispatch'. The standalone-only "Resolve nightly candidate" step then ran after Bind and died in manual_manifest() on the half-set chain env (PACKAGE_SHA256 present, SOURCE_SHA and friends missing): ValueError: manual schema 2 replay requires the full candidate, including build run and attempt Run 41948811406 went red in ~9s without executing a single case. Gate the resolver on inputs.chain_manifest == '' too, mirroring the Bind step: in chain mode Bind already writes candidate.json.
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.
Problem
In a reusable workflow,
github.event_nameis inherited from the caller's event. When a chain is dispatched viaworkflow_dispatch(manual run withbuild_run_id, or any future caller), the validation-cases lane seesgithub.event_name == 'workflow_dispatch'even thoughinputs.chain_manifestis set.That makes the standalone-only
Resolve nightly candidatestep run right afterBind functional candidate. The chain had already exported a partial schema-2 env (PACKAGE_SHA256set byfunctional_chain_evidence.py consume,SOURCE_SHA/SOURCE_REF/WORKFLOW_SHA/PACKAGE_URLmissing), somanual_manifest()took the full-candidate branch and aborted:The job went red in ~9s without executing a single case (run 41948811406,
validation-cases / validation-cases).Fix
Gate the resolver on
inputs.chain_manifest == ''as well, mirroring the Bind step's note about event-name inheritance:chain_manifestset): resolver is skipped,Bind functional candidatehas already writtencandidate.jsonworkflow_dispatch: unchanged (resolver runs exactly as before)repository_dispatch/schedulechains: unchanged (the gate was already false there)This is the same reusable-workflow gotcha fixed on the Bind side in #134; the resolver side was missed.