From 6fc0e402bdfc8b27a09841a6a4b41ff151dee83d Mon Sep 17 00:00:00 2001 From: Greenfonts Date: Tue, 30 Jun 2026 12:24:16 +0100 Subject: [PATCH 1/2] fix: skip-github-release silently skipped tag creation too PR #10 merged 0.2.0's manifest/changelog bump, but no v0.2.0 tag ever got created or pushed - skip-github-release turned out to skip the underlying git tag as well, not just the GitHub Release object (googleapis/release-please-action#1034). Since release.yml only triggers on a tag push, this silently broke both the git release and the actual NuGet publish for 0.2.0. Replaced skip-github-release with draft: true instead: release-please still creates the tag (restoring the trigger chain) plus a draft (not publicly visible) GitHub Release. release.yml's publish job now explicitly un-drafts that same release (draft: false) only after a successful, approved NuGet push, rather than creating a second one - softprops/action-gh-release updates an existing release for a tag rather than failing or duplicating. --- .github/workflows/release-please.yml | 14 +++++++++----- .github/workflows/release.yml | 7 ++++++- release-please-config.json | 2 +- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml index 0050c15..2b6a2f0 100644 --- a/.github/workflows/release-please.yml +++ b/.github/workflows/release-please.yml @@ -3,11 +3,15 @@ name: release-please # Maintains a standing "release PR" that accumulates Conventional Commits since the last # release and computes the next semver bump from them (feat: -> minor, fix: -> patch, # "BREAKING CHANGE:" footer -> major). Merging that PR creates and pushes a vX.Y.Z tag, -# which is what actually triggers release.yml's build/test/pack/publish pipeline - this -# workflow only ever decides the version number and creates the tag, nothing here touches -# NuGet or creates a GitHub Release (skip-github-release in release-please-config.json, -# since release.yml's own publish job already creates the Release after a successful -# publish - having both would create two Releases for the same tag). +# which is what actually triggers release.yml's build/test/pack/publish pipeline. +# +# "draft": true in release-please-config.json makes this also create a draft (not +# publicly visible) GitHub Release alongside the tag - NOT "skip-github-release", which +# turned out to skip the tag too (see https://github.com/googleapis/release-please-action/issues/1034), +# silently breaking this entire chain. release.yml's own publish job un-drafts that +# release (draft: false on its softprops/action-gh-release step) only after a successful, +# manually-approved NuGet push - so nothing is publicly visible as "released" until it +# actually is. on: push: branches: [main] diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index da59575..5e700db 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -83,9 +83,14 @@ jobs: - name: Push to NuGet.org run: dotnet nuget push "./artifacts/*.nupkg" --api-key "${{ steps.nuget_login.outputs.NUGET_API_KEY }}" --source https://api.nuget.org/v3/index.json --skip-duplicate - - name: Create GitHub Release + # release-please creates this release as a draft (see release-please.yml) when its + # Release PR merges, so the tag exists without anything publicly visible yet. This step + # finds that same release by tag and un-drafts it - only after a successful, approved + # NuGet push - rather than creating a second one. + - name: Publish GitHub Release uses: softprops/action-gh-release@v2 with: name: v${{ needs.build-test-pack.outputs.version }} files: ./artifacts/*.nupkg generate_release_notes: true + draft: false diff --git a/release-please-config.json b/release-please-config.json index 8e5d8f0..9053307 100644 --- a/release-please-config.json +++ b/release-please-config.json @@ -1,6 +1,6 @@ { "$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json", - "skip-github-release": true, + "draft": true, "packages": { ".": { "release-type": "simple", From 427c440d096c54f3fc61cb8b77e23b5875d4730c Mon Sep 17 00:00:00 2001 From: Greenfonts Date: Tue, 30 Jun 2026 12:29:33 +0100 Subject: [PATCH 2/2] fix: update action-gh-release to version 3 for publishing GitHub releases --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5e700db..f58b036 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -88,7 +88,7 @@ jobs: # finds that same release by tag and un-drafts it - only after a successful, approved # NuGet push - rather than creating a second one. - name: Publish GitHub Release - uses: softprops/action-gh-release@v2 + uses: softprops/action-gh-release@v3 with: name: v${{ needs.build-test-pack.outputs.version }} files: ./artifacts/*.nupkg