Skip to content

Generate release notes from CHANGELOG, and stop failing on manual runs - #51

Merged
keithlostracco merged 1 commit into
mainfrom
ci/release-notes-from-changelog
Jul 25, 2026
Merged

Generate release notes from CHANGELOG, and stop failing on manual runs#51
keithlostracco merged 1 commit into
mainfrom
ci/release-notes-from-changelog

Conversation

@keithlostracco

Copy link
Copy Markdown
Contributor

Two fixes to the release workflow, both needed before tagging v0.2.0.

Releases were published with an empty description

The Create Release step passed no body, no body_path, and no
generate_release_notes — so nothing populated the release description. Every
set of notes so far was written by hand afterwards (the stored v0.1.2 body has
CRLF line endings, i.e. typed into the web UI). The tags are lightweight, so
there was no tag message to fall back on either.

The body now comes from the CHANGELOG.md entry matching the tag, with
GitHub's generated "What's Changed" appended below it. Notes get written once,
in the PR that made the change, and reviewed there.

Tagging a version with no changelog entry now fails the release instead of
quietly publishing a blank description.

Manual runs always failed

workflow_dispatch is a listed trigger, but a release cannot be published from
a branch. A manual run resolved github.ref_name to main, producing
anim-main-src.zip and name: Release main, then died with
⚠️ GitHub Releases requires a tag. The three build jobs passed; only the
publish step failed.

The release job is now gated on startsWith(github.ref, 'refs/tags/'), so a
manual run skips publishing and acts as a dry run of the cross-platform build
and test gate — which is the only useful thing it could do from a branch.

Verification

The extraction step was run verbatim, parsed straight out of the YAML, against:

  • 0.2.0 — produces the full section, no leading or trailing blank lines
  • 0.1.2 — stops at the next version heading, no bleed from 0.1.1
  • 0.1.0 — the last section; stops before the link-reference block and the
    trailing HTML comment
  • 9.9.9 — no such entry, exits 1 with a GitHub error annotation

Releases were published with an empty description: the workflow passed
no body and did not ask GitHub to generate notes, so every set of notes
so far has been written by hand after the fact.

The release body now comes from the CHANGELOG entry matching the tag,
with GitHub's generated 'What's Changed' section appended. Tagging a
version that has no changelog entry fails the release instead of
publishing a blank description.

The release job is also gated on refs/tags/*. A release cannot be
published from a branch, so a manual workflow_dispatch run always failed
at the final step with 'GitHub Releases requires a tag'. It now skips
publishing and serves as a dry run of the build and test gate.

The extraction was tested against every section in CHANGELOG.md,
including the last one, and against a version with no entry.
@keithlostracco
keithlostracco merged commit 4f125eb into main Jul 25, 2026
5 checks passed
@keithlostracco
keithlostracco deleted the ci/release-notes-from-changelog branch July 25, 2026 23:35
Sign up for free to 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.

1 participant