Skip to content

Commit b21fa25

Browse files
committed
ci: use changelog entry for release notes
1 parent 72cd265 commit b21fa25

1 file changed

Lines changed: 25 additions & 1 deletion

File tree

.github/workflows/publish-release.yml

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,19 +100,43 @@ jobs:
100100
needs: build-release-package
101101

102102
steps:
103+
- name: Check out repository
104+
uses: actions/checkout@v4
105+
103106
- name: Download release assets
104107
uses: actions/download-artifact@v4
105108
with:
106109
path: dist
107110
merge-multiple: true
108111

112+
- name: Extract release notes from changelog
113+
run: |
114+
version="${GITHUB_REF_NAME#v}"
115+
raw_notes="$RUNNER_TEMP/release-notes.raw.md"
116+
notes_file="$RUNNER_TEMP/release-notes.md"
117+
118+
awk -v version="$version" '
119+
BEGIN { target = "## [" version "] - " }
120+
index($0, target) == 1 { in_section = 1; next }
121+
in_section && index($0, "## [") == 1 { exit }
122+
in_section { print }
123+
' CHANGELOG.md > "$raw_notes"
124+
125+
sed '/./,$!d' "$raw_notes" | tac | sed '/./,$!d' | tac > "$notes_file"
126+
127+
if [ ! -s "$notes_file" ]; then
128+
printf 'Could not extract release notes for version %s from CHANGELOG.md\n' "$version" >&2
129+
exit 1
130+
fi
131+
109132
- name: Create or update GitHub release
110133
env:
111134
GH_TOKEN: ${{ github.token }}
112135
GH_REPO: ${{ github.repository }}
113136
run: |
114137
if gh release view "${GITHUB_REF_NAME}" --repo "${GH_REPO}" >/dev/null 2>&1; then
115138
gh release upload "${GITHUB_REF_NAME}" dist/* --repo "${GH_REPO}" --clobber
139+
gh release edit "${GITHUB_REF_NAME}" --repo "${GH_REPO}" --title "${GITHUB_REF_NAME}" --notes-file "$RUNNER_TEMP/release-notes.md"
116140
else
117-
gh release create "${GITHUB_REF_NAME}" dist/* --repo "${GH_REPO}" --title "${GITHUB_REF_NAME}" --generate-notes
141+
gh release create "${GITHUB_REF_NAME}" dist/* --repo "${GH_REPO}" --title "${GITHUB_REF_NAME}" --notes-file "$RUNNER_TEMP/release-notes.md"
118142
fi

0 commit comments

Comments
 (0)