@@ -271,16 +271,25 @@ jobs:
271271 # Make script executable
272272 chmod +x Scripts/generate-release-notes.sh
273273
274- # Check if Unreleased section exists and has content
274+ # Check if Unreleased section exists
275275 if grep -q "^## \[Unreleased\]" CHANGELOG.md; then
276- echo "📝 Found [Unreleased] section, updating CHANGELOG.md for $VERSION"
277-
278- # Update CHANGELOG to convert Unreleased to versioned release
279- if ./Scripts/generate-release-notes.sh "$VERSION" --update-changelog 2>&1; then
280- echo "✅ Successfully updated CHANGELOG.md"
281- echo "CHANGELOG_UPDATED=true" >> $GITHUB_ENV
276+ # Check if Unreleased section has actual content (not just empty lines)
277+ UNRELEASED_CONTENT=$(awk '/^## \[Unreleased\]$/,/^## \[/ { if (!/^## / && NF > 0) print }' CHANGELOG.md)
278+
279+ if [ -n "$UNRELEASED_CONTENT" ]; then
280+ echo "📝 Found [Unreleased] section with content, updating CHANGELOG.md for $VERSION"
281+
282+ # Update CHANGELOG to convert Unreleased to versioned release
283+ if ./Scripts/generate-release-notes.sh "$VERSION" --update-changelog 2>&1; then
284+ echo "✅ Successfully updated CHANGELOG.md"
285+ echo "CHANGELOG_UPDATED=true" >> $GITHUB_ENV
286+ else
287+ echo "⚠️ Failed to update CHANGELOG.md, will use existing version"
288+ echo "CHANGELOG_UPDATED=false" >> $GITHUB_ENV
289+ fi
282290 else
283- echo "⚠️ Failed to update CHANGELOG.md, will use existing version"
291+ echo "ℹ️ [Unreleased] section is empty, skipping CHANGELOG update"
292+ echo "ℹ️ Please ensure CHANGELOG has release notes before creating a release"
284293 echo "CHANGELOG_UPDATED=false" >> $GITHUB_ENV
285294 fi
286295 else
0 commit comments