Skip to content

Commit 7d179ad

Browse files
committed
chore: fix release changelog update
1 parent 7cfcb31 commit 7d179ad

2 files changed

Lines changed: 42 additions & 1 deletion

File tree

.github/workflows/release.yml

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,47 @@ jobs:
3131
github-token: ${{ secrets.GITHUB_TOKEN }}
3232
dry: true
3333

34+
- name: Promote CHANGELOG.md [Unreleased] section
35+
if: steps.semrel.outputs.version != ''
36+
env:
37+
VERSION: ${{ steps.semrel.outputs.version }}
38+
run: |
39+
set -euo pipefail
40+
DATE=$(date -u +%Y-%m-%d)
41+
if ! grep -qE '^## \[Unreleased\]$' CHANGELOG.md; then
42+
echo "::error::CHANGELOG.md is missing the '## [Unreleased]' section. Add the section back to maintain release-stamping."
43+
exit 1
44+
fi
45+
# Insert a versioned heading immediately after [Unreleased] so the
46+
# entries authored under [Unreleased] become the new release block.
47+
# The next [Unreleased] section starts empty for the following release.
48+
awk -v ver="$VERSION" -v date="$DATE" '
49+
/^## \[Unreleased\]$/ {
50+
print
51+
print ""
52+
print "## [" ver "] - " date
53+
next
54+
}
55+
{ print }
56+
' CHANGELOG.md > CHANGELOG.md.tmp
57+
mv CHANGELOG.md.tmp CHANGELOG.md
58+
59+
- name: Commit CHANGELOG.md
60+
if: steps.semrel.outputs.version != ''
61+
env:
62+
VERSION: ${{ steps.semrel.outputs.version }}
63+
run: |
64+
set -euo pipefail
65+
git config user.name "github-actions[bot]"
66+
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
67+
git add CHANGELOG.md
68+
if git diff --cached --quiet; then
69+
echo "CHANGELOG.md unchanged; skipping commit."
70+
exit 0
71+
fi
72+
git commit -m "chore(release): stamp CHANGELOG for v${VERSION} [skip ci]"
73+
git push origin HEAD:main
74+
3475
- name: Generate SBOM
3576
if: steps.semrel.outputs.version != ''
3677
uses: anchore/sbom-action@e22c389904149dbc22b58101806040fa8d37a610 # v0

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8-
## 0.1.0
8+
## [Unreleased]
99

1010
### Added
1111

0 commit comments

Comments
 (0)