Skip to content

ci: fix publish half being skipped when the version job is skipped - #42

Merged
mbuckaway merged 1 commit into
fork/mainfrom
ci/release-independent-of-upstream
Aug 12, 2026
Merged

ci: fix publish half being skipped when the version job is skipped#42
mbuckaway merged 1 commit into
fork/mainfrom
ci/release-independent-of-upstream

Conversation

@mbuckaway

Copy link
Copy Markdown
Owner

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) of fork-release.yml never runs on the mode=publish or chore: release push paths. When the version job is skipped (its job-level if: needs.route.outputs.mode == 'version' is false for those paths), GitHub hides the outputs of all needed jobs from the dependent job's if — so prepare's condition needs.route.outputs.mode == 'publish' evaluated false and the job was silently skipped. Evidence: PR #39's merged chore: release 0.34.0-MB.1.12 push run completed in 8s with no tag created, and the v0.34.0-MB.1.12 tag has never existed.

What changed

  • The version job now always runs (never skipped), so prepare always sees both needed jobs' outputs.
  • Its two work steps — "Compute next version" and "Commit version bump, open PR, auto-merge" — are gated per-step with if: needs.route.outputs.mode == 'version', so the publish route runs the version job as a cheap no-op.

Checklist

  • I have read the CONTRIBUTING document.
  • I have linked a related issue, or explained the problem above.
  • I have added tests that prove my feature works. — Validated by YAML parse; the live mode=publish run after merge is the proof.
  • Ran gen-changesets skill, or this PR needs no changeset. — Release-tooling only, not user-perceivable CLI behavior.
  • Ran gen-docs skill, or this PR needs no doc update.

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.
@mbuckaway
mbuckaway merged commit e5a8e6f into fork/main Aug 12, 2026
21 of 22 checks passed
@mbuckaway
mbuckaway deleted the ci/release-independent-of-upstream branch August 12, 2026 01:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant