Re-sync release-workflow fixes from template (#213/#214)#196
Merged
Conversation
Apply the #213/#214 fixes (template PRs ptr727/ProjectTemplate#215/#216) adapted to this single-target NuGet repo. #213 - develop leg published as a stable NuGet package: - get-version-task: add a `branch` input and pin GITHUB_REF/GITHUB_REF_NAME for the NBGV step, so PublicRelease is classified against the leg's branch instead of the dispatching ref. Verified locally: GITHUB_REF=develop now yields 1.4.x-g<sha>, GITHUB_REF=main yields clean 1.4.x. - Thread `branch` into both get-version callers. - build-release-task: replace the main-only verify step with a validate-release entry gate that fails fast in both directions (main must be public; every other branch must carry a prerelease suffix). #214 - blanket artifact cleanup destroyed diagnostics/build records: - build-release-task: surgically delete only the consumed release-asset-<branch>-* transfer artifacts after the release is created. - publish-release / test-pull-request: drop the blanket cleanup-artifacts job; grant actions:write to the publish job. retention-days:1 upload backstop confirmed. actionlint clean; CRLF preserved on every touched workflow. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Pull request overview
This PR re-syncs workflow fixes from the project template to ensure multi-branch publishing behaves correctly in this repo’s single-target (NuGet-only) release pipeline, and to avoid deleting diagnostic artifacts.
Changes:
- Pin Nerdbank.GitVersioning (NBGV) branch classification per matrix leg by threading a
branchinput intoget-version-task.yml. - Add an early
validate-releasegate to prevent publishing adevelopleg as a stable version (and prevent prereleases onmain). - Replace blanket artifact cleanup with targeted deletion of only consumed
release-asset-<branch>-*artifacts; remove cleanup jobs from entrypoint workflows and grant required permissions.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| .github/workflows/test-pull-request.yml | Removes the blanket artifact cleanup job from PR CI to preserve diagnostics. |
| .github/workflows/publish-release.yml | Grants actions: write to enable surgical artifact deletion; removes blanket cleanup job. |
| .github/workflows/get-version-task.yml | Adds branch input and pins GITHUB_REF/GITHUB_REF_NAME for the NBGV step per leg. |
| .github/workflows/build-release-task.yml | Threads branch into versioning, adds validate-release gate, and deletes consumed release-asset-* artifacts post-release. |
| .github/workflows/build-nugetlibrary-task.yml | Threads branch into versioning to ensure correct prerelease/public classification for NuGet builds. |
The reference was an instruction-doc artifact (#195 section label), not present in the template's own comment. Match the template verbatim so the comment is self-contained in-repo. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…condition Pull down the template fix for the edge case reported as ProjectTemplate#217: the surgical delete step now gates on the same `exists=='false' || workflow_dispatch` condition as the create step, so a scheduled re-run on an existing tag no longer deletes the freshly built artifacts (retention-days: 1 reaps them instead). Re-synced verbatim from template PR ptr727/ProjectTemplate#218, which also clears the condensed-comment drift from the original #195 snippet. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
ptr727
added a commit
that referenced
this pull request
Jun 26, 2026
Release: promote develop to main - UN M.49 region containment (#193, version floor 1.4) - Release-workflow fixes re-synced from template (#196: #213/#214/#217) Conflicts in three workflow files were the parallel setup-dotnet dependabot bump (identical on both branches); resolved to develop's authoritative versions (newer template re-sync + the workflow fixes).
ptr727
added a commit
that referenced
this pull request
Jun 26, 2026
…verride The #196 re-sync (template #215) tried to restore the develop leg's prerelease tag by overriding GITHUB_REF in the nbgv step env. That is ineffective: GITHUB_REF is a reserved GitHub variable a step-level env cannot reliably override, so NBGV's GitHub Actions cloud-build provider still read the dispatch ref (main) as BuildingRef and classified every matrix leg as the public ref. NBGV computes the version from the checked-out branch history; its cloud-build provider only overrides that with GITHUB_REF. Set IGNORE_GITHUB_REF=true so NBGV ignores the CI ref and versions from the actually-checked-out branch (each leg already checks out its own branch). Verified in CI (dotnet/nbgv action): - checkout develop, IGNORE_GITHUB_REF=true -> PublicRelease=False, 1.4.2-g14f645dfd9 - checkout main, IGNORE_GITHUB_REF=true -> PublicRelease=True, 1.4.3 - checkout main, IGNORE_GITHUB_REF=false -> suffix (reproduces the bug) Removes the now-unused branch input/threading added for the GITHUB_REF override; the validate-release entry gate stays as the backstop. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
ptr727
added a commit
that referenced
this pull request
Jun 26, 2026
NBGV's GitHub Actions provider reads the reserved GITHUB_REF (which a step env cannot override); set IGNORE_GITHUB_REF=true so it versions from the checked-out branch instead. Supersedes the ineffective GITHUB_REF override from #196. CI-verified: develop checkout -> 1.4.x-g<sha> prerelease, main -> stable. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.
Implements the re-sync task in #195 — the single-target adaptation of template PRs ptr727/ProjectTemplate#215 (#213) and ptr727/ProjectTemplate#216 (#214).
#213 — develop leg published as a stable NuGet package
NBGV derives
PublicReleasefrom the CI branch (GITHUB_REF). On a publish dispatched frommain, every matrix leg sawGITHUB_REF=refs/heads/main, so thedevelopleg was classified public and its-g<sha>prerelease suffix stripped → published to NuGet as a stable version.get-version-task.yml: add abranchinput; pinGITHUB_REF/GITHUB_REF_NAMEfor the NBGV step to the leg's branch.branchinto bothget-versioncallers (build-release-task.yml,build-nugetlibrary-task.yml).build-release-task.yml: replace the main-only verify step with avalidate-releaseentry gate that fails fast in both directions —mainmust be public (no prerelease-), every other branch must carry one.#214 — blanket artifact cleanup destroyed diagnostics
The
cleanup-artifactsjob deleted all run artifacts (.artifacts[].id), taking logs/diagnostics with the transfer artifacts.build-release-task.yml: surgically delete only the consumedrelease-asset-<branch>-*artifacts at the point of consumption (best-effort;retention-days: 1backstop).publish-release.yml/test-pull-request.yml: remove the blanketcleanup-artifactsjob; grantactions: writeto the publish job.Testing
GITHUB_REF=refs/heads/main→PublicRelease=True,1.4.1(reproduces the bug);GITHUB_REF=refs/heads/develop→PublicRelease=False,1.4.1-g10cc912fcd(fixed).validate-releasetruth table verified (8 cases): catchesdevelop+clean version, allowsdevelop+-g<sha>, allowsmainpublic, rejectsmain+prerelease, handles+buildmetadata.actionlintclean; CRLF preserved on all five workflow files; job dependency graph intact.Closes #195.
🤖 Generated with Claude Code