Skip to content

Commit 3289fe8

Browse files
update version bump workflow
1 parent 2d76134 commit 3289fe8

File tree

1 file changed

+15
-4
lines changed

1 file changed

+15
-4
lines changed

.github/workflows/check-version-bump.yml

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# Catches when developers forget to add a version bump for their changes.
2-
# Code changes (e.g. lib/) require package.json + CHANGELOG.md; test-only skip.
2+
# Code changes (lib/, webpack/, dist/) require package.json + CHANGELOG.md.
3+
# Skips for: test-only, docs, .github (workflows/config).
34
name: Check Version Bump
45

56
on:
@@ -27,15 +28,16 @@ jobs:
2728
echo "$FILES" | grep -qx 'package.json' && VERSION_FILES_CHANGED=true
2829
echo "$FILES" | grep -qx 'CHANGELOG.md' && VERSION_FILES_CHANGED=true
2930
echo "version_files_changed=$VERSION_FILES_CHANGED" >> $GITHUB_OUTPUT
31+
# Only lib/, webpack/, dist/, package.json count as release-affecting; .github/ and test/ do not
3032
CODE_CHANGED=false
3133
echo "$FILES" | grep -qE '^lib/|^webpack/|^dist/' && CODE_CHANGED=true
3234
echo "$FILES" | grep -qx 'package.json' && CODE_CHANGED=true
3335
echo "code_changed=$CODE_CHANGED" >> $GITHUB_OUTPUT
3436
35-
- name: Skip when only test/docs/config changed
37+
- name: Skip when only test/docs/.github changed
3638
if: steps.detect.outputs.code_changed != 'true'
3739
run: |
38-
echo "No release-affecting files changed (e.g. only test/docs). Skipping version-bump check."
40+
echo "No release-affecting files changed (e.g. only test/docs/.github). Skipping version-bump check."
3941
exit 0
4042
4143
- name: Fail when version bump was missed
@@ -75,4 +77,13 @@ jobs:
7577
echo "::error::Version bump required: package.json version ($PKG_VERSION) equals latest tag ($LATEST_TAG). Please bump the version in package.json."
7678
exit 1
7779
fi
78-
CHANGELOG_VERSION=$(sed -nE 's/^## \[v?([0-9]+\.[0-9]+\.[0-9]+).*/\1/p' CHANGELOG.md | head -1)
80+
CHANGELOG_VERSION=$(sed -nE 's/^## \[v?([0-9]+\.[0-9]+\.[0-9]+).*/\1/p' CHANGELOG.md | head -1)
81+
if [ -z "$CHANGELOG_VERSION" ]; then
82+
echo "::error::Could not find a version entry in CHANGELOG.md (expected line like '## [v1.0.0](...)')."
83+
exit 1
84+
fi
85+
if [ "$CHANGELOG_VERSION" != "$PKG_VERSION" ]; then
86+
echo "::error::CHANGELOG version mismatch: CHANGELOG.md top version ($CHANGELOG_VERSION) does not match package.json version ($PKG_VERSION). Please add or update the CHANGELOG entry for $PKG_VERSION."
87+
exit 1
88+
fi
89+
echo "Version bump check passed: package.json and CHANGELOG.md are at $PKG_VERSION (latest tag: $LATEST_TAG)."

0 commit comments

Comments
 (0)