Re-sync release-workflow fixes from template (#213/#214) - #196

Merged
ptr727 merged 3 commits into
developfrom
fix/release-workflow-resync-195
Jun 26, 2026
Merged

Re-sync release-workflow fixes from template (#213/#214)#196
ptr727 merged 3 commits into
developfrom
fix/release-workflow-resync-195

Conversation

@ptr727

Copy link
Copy Markdown
Owner

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 PublicRelease from the CI branch (GITHUB_REF). On a publish dispatched from main, every matrix leg saw GITHUB_REF=refs/heads/main, so the develop leg was classified public and its -g<sha> prerelease suffix stripped → published to NuGet as a stable version.

  • get-version-task.yml: add a branch input; pin GITHUB_REF/GITHUB_REF_NAME for the NBGV step to the leg's branch.
  • Thread branch into both get-version callers (build-release-task.yml, build-nugetlibrary-task.yml).
  • build-release-task.yml: replace the main-only verify step with a validate-releaseentry gate that fails fast in both directions — main must be public (no prerelease -), every other branch must carry one.

#214 — blanket artifact cleanup destroyed diagnostics

The cleanup-artifacts job deleted all run artifacts (.artifacts[].id), taking logs/diagnostics with the transfer artifacts.

  • build-release-task.yml: surgically delete only the consumed release-asset-<branch>-* artifacts at the point of consumption (best-effort; retention-days: 1 backstop).
  • publish-release.yml / test-pull-request.yml: remove the blanket cleanup-artifacts job; grant actions: write to the publish job.

Testing

  • NBGV mechanism proven locally: GITHUB_REF=refs/heads/mainPublicRelease=True, 1.4.1 (reproduces the bug); GITHUB_REF=refs/heads/developPublicRelease=False, 1.4.1-g10cc912fcd (fixed).
  • validate-release truth table verified (8 cases): catches develop+clean version, allows develop+-g<sha>, allows main public, rejects main+prerelease, handles +buildmetadata.
  • actionlint clean; CRLF preserved on all five workflow files; job dependency graph intact.

Closes#195.

🤖 Generated with Claude Code

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>
CopilotAI review requested due to automatic review settings June 26, 2026 18:53

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 branch input into get-version-task.yml.
  • Add an early validate-release gate to prevent publishing a develop leg as a stable version (and prevent prereleases on main).
  • 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
FileDescription
.github/workflows/test-pull-request.ymlRemoves the blanket artifact cleanup job from PR CI to preserve diagnostics.
.github/workflows/publish-release.ymlGrants actions: write to enable surgical artifact deletion; removes blanket cleanup job.
.github/workflows/get-version-task.ymlAdds branch input and pins GITHUB_REF/GITHUB_REF_NAME for the NBGV step per leg.
.github/workflows/build-release-task.ymlThreads branch into versioning, adds validate-release gate, and deletes consumed release-asset-* artifacts post-release.
.github/workflows/build-nugetlibrary-task.ymlThreads branch into versioning to ensure correct prerelease/public classification for NuGet builds.

Comment thread.github/workflows/build-release-task.yml Outdated
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>

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 5 out of 5 changed files in this pull request and generated 1 comment.

Comment thread.github/workflows/build-release-task.yml
…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>

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 5 out of 5 changed files in this pull request and generated no new comments.

@ptr727
ptr727 merged commit 14f645d into developJun 26, 2026
8 checks passed
@ptr727
ptr727 deleted the fix/release-workflow-resync-195 branch June 26, 2026 20:36
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>
Sign up for freeto 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.

2 participants

@ptr727
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Re-sync release-workflow fixes from template (#213/#214) - #196

Merged
ptr727 merged 3 commits into
developfrom
fix/release-workflow-resync-195
Jun 26, 2026
Merged

Re-sync release-workflow fixes from template (#213/#214)#196
ptr727 merged 3 commits into
developfrom
fix/release-workflow-resync-195

Conversation

@ptr727

Copy link
Copy Markdown
Owner

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 PublicRelease from the CI branch (GITHUB_REF). On a publish dispatched from main, every matrix leg saw GITHUB_REF=refs/heads/main, so the develop leg was classified public and its -g<sha> prerelease suffix stripped → published to NuGet as a stable version.

  • get-version-task.yml: add a branch input; pin GITHUB_REF/GITHUB_REF_NAME for the NBGV step to the leg's branch.
  • Thread branch into both get-version callers (build-release-task.yml, build-nugetlibrary-task.yml).
  • build-release-task.yml: replace the main-only verify step with a validate-releaseentry gate that fails fast in both directions — main must be public (no prerelease -), every other branch must carry one.

#214 — blanket artifact cleanup destroyed diagnostics

The cleanup-artifacts job deleted all run artifacts (.artifacts[].id), taking logs/diagnostics with the transfer artifacts.

  • build-release-task.yml: surgically delete only the consumed release-asset-<branch>-* artifacts at the point of consumption (best-effort; retention-days: 1 backstop).
  • publish-release.yml / test-pull-request.yml: remove the blanket cleanup-artifacts job; grant actions: write to the publish job.

Testing

  • NBGV mechanism proven locally: GITHUB_REF=refs/heads/mainPublicRelease=True, 1.4.1 (reproduces the bug); GITHUB_REF=refs/heads/developPublicRelease=False, 1.4.1-g10cc912fcd (fixed).
  • validate-release truth table verified (8 cases): catches develop+clean version, allows develop+-g<sha>, allows main public, rejects main+prerelease, handles +buildmetadata.
  • actionlint clean; CRLF preserved on all five workflow files; job dependency graph intact.

Closes#195.

🤖 Generated with Claude Code

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>
CopilotAI review requested due to automatic review settings June 26, 2026 18:53

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 branch input into get-version-task.yml.
  • Add an early validate-release gate to prevent publishing a develop leg as a stable version (and prevent prereleases on main).
  • 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
FileDescription
.github/workflows/test-pull-request.ymlRemoves the blanket artifact cleanup job from PR CI to preserve diagnostics.
.github/workflows/publish-release.ymlGrants actions: write to enable surgical artifact deletion; removes blanket cleanup job.
.github/workflows/get-version-task.ymlAdds branch input and pins GITHUB_REF/GITHUB_REF_NAME for the NBGV step per leg.
.github/workflows/build-release-task.ymlThreads branch into versioning, adds validate-release gate, and deletes consumed release-asset-* artifacts post-release.
.github/workflows/build-nugetlibrary-task.ymlThreads branch into versioning to ensure correct prerelease/public classification for NuGet builds.

Comment thread.github/workflows/build-release-task.yml Outdated
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>

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 5 out of 5 changed files in this pull request and generated 1 comment.

Comment thread.github/workflows/build-release-task.yml
…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>

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 5 out of 5 changed files in this pull request and generated no new comments.

@ptr727
ptr727 merged commit 14f645d into developJun 26, 2026
8 checks passed
@ptr727
ptr727 deleted the fix/release-workflow-resync-195 branch June 26, 2026 20:36
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>
Sign up for freeto 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.

2 participants

@ptr727
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Re-sync release-workflow fixes from template (#213/#214) - #196

Merged
ptr727 merged 3 commits into
developfrom
fix/release-workflow-resync-195
Jun 26, 2026
Merged

Re-sync release-workflow fixes from template (#213/#214)#196
ptr727 merged 3 commits into
developfrom
fix/release-workflow-resync-195

Conversation

@ptr727

Copy link
Copy Markdown
Owner

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 PublicRelease from the CI branch (GITHUB_REF). On a publish dispatched from main, every matrix leg saw GITHUB_REF=refs/heads/main, so the develop leg was classified public and its -g<sha> prerelease suffix stripped → published to NuGet as a stable version.

  • get-version-task.yml: add a branch input; pin GITHUB_REF/GITHUB_REF_NAME for the NBGV step to the leg's branch.
  • Thread branch into both get-version callers (build-release-task.yml, build-nugetlibrary-task.yml).
  • build-release-task.yml: replace the main-only verify step with a validate-releaseentry gate that fails fast in both directions — main must be public (no prerelease -), every other branch must carry one.

#214 — blanket artifact cleanup destroyed diagnostics

The cleanup-artifacts job deleted all run artifacts (.artifacts[].id), taking logs/diagnostics with the transfer artifacts.

  • build-release-task.yml: surgically delete only the consumed release-asset-<branch>-* artifacts at the point of consumption (best-effort; retention-days: 1 backstop).
  • publish-release.yml / test-pull-request.yml: remove the blanket cleanup-artifacts job; grant actions: write to the publish job.

Testing

  • NBGV mechanism proven locally: GITHUB_REF=refs/heads/mainPublicRelease=True, 1.4.1 (reproduces the bug); GITHUB_REF=refs/heads/developPublicRelease=False, 1.4.1-g10cc912fcd (fixed).
  • validate-release truth table verified (8 cases): catches develop+clean version, allows develop+-g<sha>, allows main public, rejects main+prerelease, handles +buildmetadata.
  • actionlint clean; CRLF preserved on all five workflow files; job dependency graph intact.

Closes#195.

🤖 Generated with Claude Code

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>
CopilotAI review requested due to automatic review settings June 26, 2026 18:53

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 branch input into get-version-task.yml.
  • Add an early validate-release gate to prevent publishing a develop leg as a stable version (and prevent prereleases on main).
  • 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
FileDescription
.github/workflows/test-pull-request.ymlRemoves the blanket artifact cleanup job from PR CI to preserve diagnostics.
.github/workflows/publish-release.ymlGrants actions: write to enable surgical artifact deletion; removes blanket cleanup job.
.github/workflows/get-version-task.ymlAdds branch input and pins GITHUB_REF/GITHUB_REF_NAME for the NBGV step per leg.
.github/workflows/build-release-task.ymlThreads branch into versioning, adds validate-release gate, and deletes consumed release-asset-* artifacts post-release.
.github/workflows/build-nugetlibrary-task.ymlThreads branch into versioning to ensure correct prerelease/public classification for NuGet builds.

Comment thread.github/workflows/build-release-task.yml Outdated
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>

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 5 out of 5 changed files in this pull request and generated 1 comment.

Comment thread.github/workflows/build-release-task.yml
…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>

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 5 out of 5 changed files in this pull request and generated no new comments.

@ptr727
ptr727 merged commit 14f645d into developJun 26, 2026
8 checks passed
@ptr727
ptr727 deleted the fix/release-workflow-resync-195 branch June 26, 2026 20:36
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>
Sign up for freeto 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.

2 participants

@ptr727
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Re-sync release-workflow fixes from template (#213/#214) - #196

Merged
ptr727 merged 3 commits into
developfrom
fix/release-workflow-resync-195
Jun 26, 2026
Merged

Re-sync release-workflow fixes from template (#213/#214)#196
ptr727 merged 3 commits into
developfrom
fix/release-workflow-resync-195

Conversation

@ptr727

Copy link
Copy Markdown
Owner

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 PublicRelease from the CI branch (GITHUB_REF). On a publish dispatched from main, every matrix leg saw GITHUB_REF=refs/heads/main, so the develop leg was classified public and its -g<sha> prerelease suffix stripped → published to NuGet as a stable version.

  • get-version-task.yml: add a branch input; pin GITHUB_REF/GITHUB_REF_NAME for the NBGV step to the leg's branch.
  • Thread branch into both get-version callers (build-release-task.yml, build-nugetlibrary-task.yml).
  • build-release-task.yml: replace the main-only verify step with a validate-releaseentry gate that fails fast in both directions — main must be public (no prerelease -), every other branch must carry one.

#214 — blanket artifact cleanup destroyed diagnostics

The cleanup-artifacts job deleted all run artifacts (.artifacts[].id), taking logs/diagnostics with the transfer artifacts.

  • build-release-task.yml: surgically delete only the consumed release-asset-<branch>-* artifacts at the point of consumption (best-effort; retention-days: 1 backstop).
  • publish-release.yml / test-pull-request.yml: remove the blanket cleanup-artifacts job; grant actions: write to the publish job.

Testing

  • NBGV mechanism proven locally: GITHUB_REF=refs/heads/mainPublicRelease=True, 1.4.1 (reproduces the bug); GITHUB_REF=refs/heads/developPublicRelease=False, 1.4.1-g10cc912fcd (fixed).
  • validate-release truth table verified (8 cases): catches develop+clean version, allows develop+-g<sha>, allows main public, rejects main+prerelease, handles +buildmetadata.
  • actionlint clean; CRLF preserved on all five workflow files; job dependency graph intact.

Closes#195.

🤖 Generated with Claude Code

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>
CopilotAI review requested due to automatic review settings June 26, 2026 18:53

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 branch input into get-version-task.yml.
  • Add an early validate-release gate to prevent publishing a develop leg as a stable version (and prevent prereleases on main).
  • 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
FileDescription
.github/workflows/test-pull-request.ymlRemoves the blanket artifact cleanup job from PR CI to preserve diagnostics.
.github/workflows/publish-release.ymlGrants actions: write to enable surgical artifact deletion; removes blanket cleanup job.
.github/workflows/get-version-task.ymlAdds branch input and pins GITHUB_REF/GITHUB_REF_NAME for the NBGV step per leg.
.github/workflows/build-release-task.ymlThreads branch into versioning, adds validate-release gate, and deletes consumed release-asset-* artifacts post-release.
.github/workflows/build-nugetlibrary-task.ymlThreads branch into versioning to ensure correct prerelease/public classification for NuGet builds.

Comment thread.github/workflows/build-release-task.yml Outdated
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>

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 5 out of 5 changed files in this pull request and generated 1 comment.

Comment thread.github/workflows/build-release-task.yml
…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>

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 5 out of 5 changed files in this pull request and generated no new comments.

@ptr727
ptr727 merged commit 14f645d into developJun 26, 2026
8 checks passed
@ptr727
ptr727 deleted the fix/release-workflow-resync-195 branch June 26, 2026 20:36
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>
Sign up for freeto 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.

2 participants

@ptr727
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Re-sync release-workflow fixes from template (#213/#214) - #196

Merged
ptr727 merged 3 commits into
developfrom
fix/release-workflow-resync-195
Jun 26, 2026
Merged

Re-sync release-workflow fixes from template (#213/#214)#196
ptr727 merged 3 commits into
developfrom
fix/release-workflow-resync-195

Conversation

@ptr727

Copy link
Copy Markdown
Owner

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 PublicRelease from the CI branch (GITHUB_REF). On a publish dispatched from main, every matrix leg saw GITHUB_REF=refs/heads/main, so the develop leg was classified public and its -g<sha> prerelease suffix stripped → published to NuGet as a stable version.

  • get-version-task.yml: add a branch input; pin GITHUB_REF/GITHUB_REF_NAME for the NBGV step to the leg's branch.
  • Thread branch into both get-version callers (build-release-task.yml, build-nugetlibrary-task.yml).
  • build-release-task.yml: replace the main-only verify step with a validate-releaseentry gate that fails fast in both directions — main must be public (no prerelease -), every other branch must carry one.

#214 — blanket artifact cleanup destroyed diagnostics

The cleanup-artifacts job deleted all run artifacts (.artifacts[].id), taking logs/diagnostics with the transfer artifacts.

  • build-release-task.yml: surgically delete only the consumed release-asset-<branch>-* artifacts at the point of consumption (best-effort; retention-days: 1 backstop).
  • publish-release.yml / test-pull-request.yml: remove the blanket cleanup-artifacts job; grant actions: write to the publish job.

Testing

  • NBGV mechanism proven locally: GITHUB_REF=refs/heads/mainPublicRelease=True, 1.4.1 (reproduces the bug); GITHUB_REF=refs/heads/developPublicRelease=False, 1.4.1-g10cc912fcd (fixed).
  • validate-release truth table verified (8 cases): catches develop+clean version, allows develop+-g<sha>, allows main public, rejects main+prerelease, handles +buildmetadata.
  • actionlint clean; CRLF preserved on all five workflow files; job dependency graph intact.

Closes#195.

🤖 Generated with Claude Code

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>
CopilotAI review requested due to automatic review settings June 26, 2026 18:53

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 branch input into get-version-task.yml.
  • Add an early validate-release gate to prevent publishing a develop leg as a stable version (and prevent prereleases on main).
  • 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
FileDescription
.github/workflows/test-pull-request.ymlRemoves the blanket artifact cleanup job from PR CI to preserve diagnostics.
.github/workflows/publish-release.ymlGrants actions: write to enable surgical artifact deletion; removes blanket cleanup job.
.github/workflows/get-version-task.ymlAdds branch input and pins GITHUB_REF/GITHUB_REF_NAME for the NBGV step per leg.
.github/workflows/build-release-task.ymlThreads branch into versioning, adds validate-release gate, and deletes consumed release-asset-* artifacts post-release.
.github/workflows/build-nugetlibrary-task.ymlThreads branch into versioning to ensure correct prerelease/public classification for NuGet builds.

Comment thread.github/workflows/build-release-task.yml Outdated
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>

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 5 out of 5 changed files in this pull request and generated 1 comment.

Comment thread.github/workflows/build-release-task.yml
…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>

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 5 out of 5 changed files in this pull request and generated no new comments.

@ptr727
ptr727 merged commit 14f645d into developJun 26, 2026
8 checks passed
@ptr727
ptr727 deleted the fix/release-workflow-resync-195 branch June 26, 2026 20:36
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>
Sign up for freeto 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.

2 participants

@ptr727
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Re-sync release-workflow fixes from template (#213/#214) - #196

Merged
ptr727 merged 3 commits into
developfrom
fix/release-workflow-resync-195
Jun 26, 2026
Merged

Re-sync release-workflow fixes from template (#213/#214)#196
ptr727 merged 3 commits into
developfrom
fix/release-workflow-resync-195

Conversation

@ptr727

Copy link
Copy Markdown
Owner

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 PublicRelease from the CI branch (GITHUB_REF). On a publish dispatched from main, every matrix leg saw GITHUB_REF=refs/heads/main, so the develop leg was classified public and its -g<sha> prerelease suffix stripped → published to NuGet as a stable version.

  • get-version-task.yml: add a branch input; pin GITHUB_REF/GITHUB_REF_NAME for the NBGV step to the leg's branch.
  • Thread branch into both get-version callers (build-release-task.yml, build-nugetlibrary-task.yml).
  • build-release-task.yml: replace the main-only verify step with a validate-releaseentry gate that fails fast in both directions — main must be public (no prerelease -), every other branch must carry one.

#214 — blanket artifact cleanup destroyed diagnostics

The cleanup-artifacts job deleted all run artifacts (.artifacts[].id), taking logs/diagnostics with the transfer artifacts.

  • build-release-task.yml: surgically delete only the consumed release-asset-<branch>-* artifacts at the point of consumption (best-effort; retention-days: 1 backstop).
  • publish-release.yml / test-pull-request.yml: remove the blanket cleanup-artifacts job; grant actions: write to the publish job.

Testing

  • NBGV mechanism proven locally: GITHUB_REF=refs/heads/mainPublicRelease=True, 1.4.1 (reproduces the bug); GITHUB_REF=refs/heads/developPublicRelease=False, 1.4.1-g10cc912fcd (fixed).
  • validate-release truth table verified (8 cases): catches develop+clean version, allows develop+-g<sha>, allows main public, rejects main+prerelease, handles +buildmetadata.
  • actionlint clean; CRLF preserved on all five workflow files; job dependency graph intact.

Closes#195.

🤖 Generated with Claude Code

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>
CopilotAI review requested due to automatic review settings June 26, 2026 18:53

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 branch input into get-version-task.yml.
  • Add an early validate-release gate to prevent publishing a develop leg as a stable version (and prevent prereleases on main).
  • 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
FileDescription
.github/workflows/test-pull-request.ymlRemoves the blanket artifact cleanup job from PR CI to preserve diagnostics.
.github/workflows/publish-release.ymlGrants actions: write to enable surgical artifact deletion; removes blanket cleanup job.
.github/workflows/get-version-task.ymlAdds branch input and pins GITHUB_REF/GITHUB_REF_NAME for the NBGV step per leg.
.github/workflows/build-release-task.ymlThreads branch into versioning, adds validate-release gate, and deletes consumed release-asset-* artifacts post-release.
.github/workflows/build-nugetlibrary-task.ymlThreads branch into versioning to ensure correct prerelease/public classification for NuGet builds.

Comment thread.github/workflows/build-release-task.yml Outdated
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>

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 5 out of 5 changed files in this pull request and generated 1 comment.

Comment thread.github/workflows/build-release-task.yml
…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>

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 5 out of 5 changed files in this pull request and generated no new comments.

@ptr727
ptr727 merged commit 14f645d into developJun 26, 2026
8 checks passed
@ptr727
ptr727 deleted the fix/release-workflow-resync-195 branch June 26, 2026 20:36
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>
Sign up for freeto 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.

2 participants

@ptr727
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Re-sync release-workflow fixes from template (#213/#214) - #196

Merged
ptr727 merged 3 commits into
developfrom
fix/release-workflow-resync-195
Jun 26, 2026
Merged

Re-sync release-workflow fixes from template (#213/#214)#196
ptr727 merged 3 commits into
developfrom
fix/release-workflow-resync-195

Conversation

@ptr727

Copy link
Copy Markdown
Owner

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 PublicRelease from the CI branch (GITHUB_REF). On a publish dispatched from main, every matrix leg saw GITHUB_REF=refs/heads/main, so the develop leg was classified public and its -g<sha> prerelease suffix stripped → published to NuGet as a stable version.

  • get-version-task.yml: add a branch input; pin GITHUB_REF/GITHUB_REF_NAME for the NBGV step to the leg's branch.
  • Thread branch into both get-version callers (build-release-task.yml, build-nugetlibrary-task.yml).
  • build-release-task.yml: replace the main-only verify step with a validate-releaseentry gate that fails fast in both directions — main must be public (no prerelease -), every other branch must carry one.

#214 — blanket artifact cleanup destroyed diagnostics

The cleanup-artifacts job deleted all run artifacts (.artifacts[].id), taking logs/diagnostics with the transfer artifacts.

  • build-release-task.yml: surgically delete only the consumed release-asset-<branch>-* artifacts at the point of consumption (best-effort; retention-days: 1 backstop).
  • publish-release.yml / test-pull-request.yml: remove the blanket cleanup-artifacts job; grant actions: write to the publish job.

Testing

  • NBGV mechanism proven locally: GITHUB_REF=refs/heads/mainPublicRelease=True, 1.4.1 (reproduces the bug); GITHUB_REF=refs/heads/developPublicRelease=False, 1.4.1-g10cc912fcd (fixed).
  • validate-release truth table verified (8 cases): catches develop+clean version, allows develop+-g<sha>, allows main public, rejects main+prerelease, handles +buildmetadata.
  • actionlint clean; CRLF preserved on all five workflow files; job dependency graph intact.

Closes#195.

🤖 Generated with Claude Code

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>
CopilotAI review requested due to automatic review settings June 26, 2026 18:53

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 branch input into get-version-task.yml.
  • Add an early validate-release gate to prevent publishing a develop leg as a stable version (and prevent prereleases on main).
  • 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
FileDescription
.github/workflows/test-pull-request.ymlRemoves the blanket artifact cleanup job from PR CI to preserve diagnostics.
.github/workflows/publish-release.ymlGrants actions: write to enable surgical artifact deletion; removes blanket cleanup job.
.github/workflows/get-version-task.ymlAdds branch input and pins GITHUB_REF/GITHUB_REF_NAME for the NBGV step per leg.
.github/workflows/build-release-task.ymlThreads branch into versioning, adds validate-release gate, and deletes consumed release-asset-* artifacts post-release.
.github/workflows/build-nugetlibrary-task.ymlThreads branch into versioning to ensure correct prerelease/public classification for NuGet builds.

Comment thread.github/workflows/build-release-task.yml Outdated
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>

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 5 out of 5 changed files in this pull request and generated 1 comment.

Comment thread.github/workflows/build-release-task.yml
…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>

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 5 out of 5 changed files in this pull request and generated no new comments.

@ptr727
ptr727 merged commit 14f645d into developJun 26, 2026
8 checks passed
@ptr727
ptr727 deleted the fix/release-workflow-resync-195 branch June 26, 2026 20:36
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>
Sign up for freeto 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.

2 participants

@ptr727
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Re-sync release-workflow fixes from template (#213/#214) - #196

Merged
ptr727 merged 3 commits into
developfrom
fix/release-workflow-resync-195
Jun 26, 2026
Merged

Re-sync release-workflow fixes from template (#213/#214)#196
ptr727 merged 3 commits into
developfrom
fix/release-workflow-resync-195

Conversation

@ptr727

Copy link
Copy Markdown
Owner

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 PublicRelease from the CI branch (GITHUB_REF). On a publish dispatched from main, every matrix leg saw GITHUB_REF=refs/heads/main, so the develop leg was classified public and its -g<sha> prerelease suffix stripped → published to NuGet as a stable version.

  • get-version-task.yml: add a branch input; pin GITHUB_REF/GITHUB_REF_NAME for the NBGV step to the leg's branch.
  • Thread branch into both get-version callers (build-release-task.yml, build-nugetlibrary-task.yml).
  • build-release-task.yml: replace the main-only verify step with a validate-releaseentry gate that fails fast in both directions — main must be public (no prerelease -), every other branch must carry one.

#214 — blanket artifact cleanup destroyed diagnostics

The cleanup-artifacts job deleted all run artifacts (.artifacts[].id), taking logs/diagnostics with the transfer artifacts.

  • build-release-task.yml: surgically delete only the consumed release-asset-<branch>-* artifacts at the point of consumption (best-effort; retention-days: 1 backstop).
  • publish-release.yml / test-pull-request.yml: remove the blanket cleanup-artifacts job; grant actions: write to the publish job.

Testing

  • NBGV mechanism proven locally: GITHUB_REF=refs/heads/mainPublicRelease=True, 1.4.1 (reproduces the bug); GITHUB_REF=refs/heads/developPublicRelease=False, 1.4.1-g10cc912fcd (fixed).
  • validate-release truth table verified (8 cases): catches develop+clean version, allows develop+-g<sha>, allows main public, rejects main+prerelease, handles +buildmetadata.
  • actionlint clean; CRLF preserved on all five workflow files; job dependency graph intact.

Closes#195.

🤖 Generated with Claude Code

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>
CopilotAI review requested due to automatic review settings June 26, 2026 18:53

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 branch input into get-version-task.yml.
  • Add an early validate-release gate to prevent publishing a develop leg as a stable version (and prevent prereleases on main).
  • 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
FileDescription
.github/workflows/test-pull-request.ymlRemoves the blanket artifact cleanup job from PR CI to preserve diagnostics.
.github/workflows/publish-release.ymlGrants actions: write to enable surgical artifact deletion; removes blanket cleanup job.
.github/workflows/get-version-task.ymlAdds branch input and pins GITHUB_REF/GITHUB_REF_NAME for the NBGV step per leg.
.github/workflows/build-release-task.ymlThreads branch into versioning, adds validate-release gate, and deletes consumed release-asset-* artifacts post-release.
.github/workflows/build-nugetlibrary-task.ymlThreads branch into versioning to ensure correct prerelease/public classification for NuGet builds.

Comment thread.github/workflows/build-release-task.yml Outdated
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>

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 5 out of 5 changed files in this pull request and generated 1 comment.

Comment thread.github/workflows/build-release-task.yml
…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>

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 5 out of 5 changed files in this pull request and generated no new comments.

@ptr727
ptr727 merged commit 14f645d into developJun 26, 2026
8 checks passed
@ptr727
ptr727 deleted the fix/release-workflow-resync-195 branch June 26, 2026 20:36
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>
Sign up for freeto 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.

2 participants

@ptr727