Skip to content

Commit cf947a7

Browse files
committed
fix: reading version bump from changelog
1 parent bf69caf commit cf947a7

1 file changed

Lines changed: 9 additions & 3 deletions

File tree

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

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,10 +67,16 @@ jobs:
6767
}
6868
6969
head_version=$(extract_version < "$VERSION_FILE")
70-
CHANGELOG_HEAD=$(sed -nE 's/^## v?([^[:space:]]+).*/\1/p' "$CHANGELOG_FILE" | head -1)
70+
# Changelog uses "## Date" sections with versions on "#### vX.Y.Z" lines; support that and legacy "## vX.Y.Z".
71+
CHANGELOG_HEAD=$(
72+
sed -nE 's/^####[[:space:]]+v?([0-9]+\.[0-9]+\.[0-9]+).*/\1/p' "$CHANGELOG_FILE" | head -1
73+
)
74+
if [ -z "$CHANGELOG_HEAD" ]; then
75+
CHANGELOG_HEAD=$(sed -nE 's/^##[[:space:]]+v?([0-9]+\.[0-9]+\.[0-9]+).*/\1/p' "$CHANGELOG_FILE" | head -1)
76+
fi
7177
72-
[ -n "$CHANGELOG_HEAD" ] || { echo "::error::Could not find a top changelog heading like '## vX.Y.Z' in $CHANGELOG_FILE."; exit 1; }
73-
[ "$CHANGELOG_HEAD" = "$head_version" ] || { echo "::error::$CHANGELOG_FILE top version ($CHANGELOG_HEAD) does not match project version ($head_version)."; exit 1; }
78+
[ -n "$CHANGELOG_HEAD" ] || { echo "::error::Could not find a version in $CHANGELOG_FILE (expected '#### vX.Y.Z' under a date section or legacy '## vX.Y.Z')."; exit 1; }
79+
[ "$CHANGELOG_HEAD" = "$head_version" ] || { echo "::error::$CHANGELOG_FILE top release version ($CHANGELOG_HEAD) does not match project version ($head_version)."; exit 1; }
7480
7581
base_version=$(git show "$BASE_SHA:$VERSION_FILE" | extract_version)
7682
latest_tag=$(git tag --list 'v*' --sort=-version:refname | sed -n '1p')

0 commit comments

Comments
 (0)