You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .github/RELEASE_WORKFLOW.md
+14-1Lines changed: 14 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -173,6 +173,19 @@ body via `gh release view --json body` and compares it byte-for-byte
173
173
This catches GitHub-side normalisation surprises (which are rare but real)
174
174
without letting a malformed body sit on the release indefinitely.
175
175
176
+
## Changelog promotion
177
+
178
+
The workflow promotes `## Unreleased` to the tagged section before the build
179
+
so the embedded `CHANGELOG.md` matches the shipped release. Before promotion,
180
+
it also replays the commit range since the previous stable tag into
181
+
`## Unreleased`; that keeps the release notes correct when the tag job starts
182
+
before the push-triggered changelog appender has committed back to main.
183
+
184
+
After the release publishes, the stashed promoted `CHANGELOG.md` is committed
185
+
back to main with GitHub's `createCommitOnBranch` mutation. This is the same
186
+
verified-commit path used by `changelog-append.yml` and avoids the old
187
+
promotion-branch PR flow.
188
+
176
189
## Failure modes + remediations
177
190
178
191
| Symptom | Fix |
@@ -182,7 +195,7 @@ without letting a malformed body sit on the release indefinitely.
182
195
|`Voice or internal-only-vocabulary patterns in release body`| Amend the offending commit subject. Or `[skip changelog]` it if the term is genuinely unavoidable. |
183
196
|`Generate-ReleaseNotes.ps1 returned empty output`| The script failed silently or the slice was empty. Check the workflow log for warnings; if the slice really is empty, the empty-slice guard would have already thrown -- so this is a script bug. |
184
197
|`Release body still differs after auto-correct`| A GitHub-side issue. Compare the input file in the runner artifacts against what `gh release view` returns. Often a trailing-whitespace or unicode-form difference. |
185
-
|`Open promotion PR ... pull request create failed`| Repo setting `Allow GitHub Actions to create and approve pull requests` is OFF. The release publishes correctly; only the `## Unreleased` -> tagged-section promotion fails. Cosmetic; flip the setting if you want it. |
198
+
|`createCommitOnBranch returned GraphQL errors`| Main moved after the workflow read its head, or GitHub rejected the file update. Re-run the workflow after main settles; if it repeats, inspect the GraphQL error text and push the same CHANGELOG.md promotion in the next source commit. |
pr_body="Promotion PR opened by .github/workflows/release.yml after publishing **${TAG_NAME}**. Mirrors the embedded \`CHANGELOG.md\` that shipped inside the exe back onto \`main\` so the next push starts with a fresh \`## Unreleased\` section. Auto-merge enabled -- will squash once \`dotnet build + test\` passes."
0 commit comments