Commit 478156574f for handsontable.com
commit 478156574ff5eac454cfc2c739f8b23d76f61b4d
Author: Krzysztof Budnik <571316+budnix@users.noreply.github.com>
Date: Tue May 19 15:55:37 2026 +0200
Fix stable-prepare CHANGELOG step to be idempotent on re-run
diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml
index 0402d9459b..1c085abcc3 100644
--- a/.github/workflows/publish.yml
+++ b/.github/workflows/publish.yml
@@ -1088,16 +1088,21 @@ jobs:
run: |
VERSION='${{ steps.version.outputs.version }}'
TODAY=$(date +%Y-%m-%d)
+ STABLE_PATTERN="^## \[${VERSION}\] - [0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}$"
PATTERN="^## \[${VERSION}-rc[0-9]\+\] - [0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}$"
- MATCHES=$(grep -c "$PATTERN" CHANGELOG.md || true)
- if [ "$MATCHES" -ne 1 ]; then
- echo "::error::Expected exactly 1 matching line in CHANGELOG.md for version ${VERSION}-rcX, found ${MATCHES}"
- exit 1
- fi
+ if grep -q "$STABLE_PATTERN" CHANGELOG.md; then
+ echo "::notice::CHANGELOG.md already updated for ${VERSION} — skipping."
+ else
+ MATCHES=$(grep -c "$PATTERN" CHANGELOG.md || true)
+ if [ "$MATCHES" -ne 1 ]; then
+ echo "::error::Expected exactly 1 matching line in CHANGELOG.md for version ${VERSION}-rcX, found ${MATCHES}"
+ exit 1
+ fi
- sed -i "s/${PATTERN}/## [${VERSION}] - ${TODAY}/" CHANGELOG.md
- echo "Updated CHANGELOG.md: ## [${VERSION}] - ${TODAY}"
+ sed -i "s/${PATTERN}/## [${VERSION}] - ${TODAY}/" CHANGELOG.md
+ echo "Updated CHANGELOG.md: ## [${VERSION}] - ${TODAY}"
+ fi
- name: Update docs changelog
run: node .github/scripts/update-docs-changelog.mjs '${{ steps.version.outputs.version }}'