ci: fix publish half being skipped when the version job is skipped - #42
Merged
Merged
Conversation
A skipped job in the needs list hides the outputs of ALL needed jobs from a dependent job's if expression. The version job was gated by its own if, so on the mode=publish and chore:release paths it was skipped and prepare's condition (needs.route.outputs.mode == 'publish') evaluated false — the publish half silently never ran. Observed: PR #39's merged version bump produced no v0.34.0-MB.1.12 tag. The version job now always runs (never skipped); its two work steps (version computation, bump PR) are gated per-step on the route mode. prepare therefore always sees both needed jobs' outputs and the publish half runs.
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.
Related Issue
Fixes a regression in the fork release pipeline discovered while cutting
v0.34.0-MB.1.12(the previous release-untying change, PR #41).Problem
The publish half (
prepare) offork-release.ymlnever runs on themode=publishorchore: releasepush paths. When theversionjob is skipped (its job-levelif: needs.route.outputs.mode == 'version'is false for those paths), GitHub hides the outputs of all needed jobs from the dependent job'sif— soprepare's conditionneeds.route.outputs.mode == 'publish'evaluated false and the job was silently skipped. Evidence: PR #39's mergedchore: release 0.34.0-MB.1.12push run completed in 8s with no tag created, and thev0.34.0-MB.1.12tag has never existed.What changed
versionjob now always runs (never skipped), sopreparealways sees both needed jobs' outputs.if: needs.route.outputs.mode == 'version', so the publish route runs the version job as a cheap no-op.Checklist
mode=publishrun after merge is the proof.gen-changesetsskill, or this PR needs no changeset. — Release-tooling only, not user-perceivable CLI behavior.gen-docsskill, or this PR needs no doc update.