Skip validate-release on smoke builds - #220
Merged
Merged
Conversation
Fixes #219. The validate-release gate ran unconditionally, including in PR smoke builds. A smoke build checks out the PR head in detached HEAD, so NBGV always computes a prerelease version (X.Y.Z-g<sha>). On a main-base PR (a develop->main promotion carrying a build target) the gate's branch==main arm then fails ("public release version carries a prerelease suffix"), the build job is skipped, and the required Check pull request workflow status fails - blocking every clean develop->main promotion that includes a build change. Skip the gate for smoke builds (they never publish), keeping the job in the graph as a success so build-*'s `needs: [get-version, validate-release]` stays satisfied. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Pull request overview
Adjusts the reusable release build workflow so the validate-release entry gate does not fail PR smoke builds (which run in detached HEAD and therefore always produce an NBGV prerelease SemVer2), unblocking clean develop -> main promotion PRs that include build-target changes.
Changes:
- Passes
inputs.smokeinto thevalidate-releasestep viaSMOKEenv var. - Early-exits the
validate-releasescript successfully when running in smoke mode, while keeping the job in the DAG so dependent build jobs'needs:remain satisfied.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
ptr727
added a commit
that referenced
this pull request
Jul 4, 2026
Promote the accumulated `develop` work to `main`. Twelve changes since the last promotion: - Add `WORKFLOW.md`: workflow style, architecture, behavioral contract, test methodology (#223) - Use NBGV `IGNORE_GITHUB_REF` instead of the ineffective `GITHUB_REF` override (#222) - Skip validate-release on smoke builds (#220) - Gate asset delete on the release create/refresh condition (#218) - Ship branch rulesets as versioned JSON in the re-sync / drift loop (#212) - Clean up transfer artifacts surgically at consumption, not blanket-delete (#216) - Version each publish leg against its own branch; validate at entry (#215) - Consolidate workspace configurations into a unified ProjectTemplate workspace (#210) - Template convergence barrier: absorb pins, generic release + docker-readme, carry-whole-file (#207) - Key merge-bot concurrency on PR number, not `github.ref` (#206) - Codify orchestrated re-sync personas and full-replacement rule (#205) - Lead action pins; affirm pattern-based artifact handoff (#204) 🤖 Generated with [Claude Code](https://claude.com/claude-code)
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
Closes #219. The
validate-releaseentry gate (added in #213/#215) runs unconditionally, including in PR smoke builds. A smoke build checks out the PR head in detached HEAD, so NBGV always computes a prerelease version (X.Y.Z-g<sha>). On a main-base PR — adevelop → mainpromotion carrying a build target — the gate'sbranch == 'main'arm fails:validate-releasefails →buildis skipped → the requiredCheck pull request workflow statusfails. Every cleandevelop → mainpromotion PR that includes a build-target change is blocked by its own smoke build (masked only when merged via admin bypass).Fix
Skip the gate for smoke builds — they never publish — keeping the job in the graph as a success so
build-*'sneeds: [get-version, validate-release]stays satisfied:Real publishes (
smoke: false) still get both-direction validation.Verification
actionlint(Docker, shellcheck-bundled) clean; CRLF preserved.smoke: trueinvocation passes for bothbranch: main(Release) andbranch: develop(Debug) withgithub-releaseskipped; real publishes unaffected.Found via end-to-end CI flow validation during the #213/#214 downstream re-sync.
🤖 Generated with Claude Code