@@ -20,12 +20,16 @@ jobs:
2020 run : |
2121 YESTERDAY=$(date -u --date="yesterday" +%Y-%m-%d)
2222
23- # Extract the changelog section for YESTERDAY, stopping at the next date
23+ # Crop the changelog first (keep first 20,000 characters)
24+ MAX_SIZE=20000
25+ head -c "$MAX_SIZE" CHANGELOG.md > changelog_cropped.md
26+
27+ # Extract exactly the section for YESTERDAY, stopping at the next date
2428 awk -v date="## $YESTERDAY" '
25- $0 ~ date {found=1; print; next }
26- found && /^## [0-9]{4}-[0-9]{2}-[0-9]{2}/ {exit}
27- found {print}
28- ' CHANGELOG .md | sed '/^## [0-9]/d' > changelog_tmp.md
29+ $0 ~ date {found=1}
30+ found && /^## [0-9]{4}-[0-9]{2}-[0-9]{2}/ && $0 != date {exit}
31+ found
32+ ' changelog_cropped .md > changelog_tmp.md
2933
3034 echo "=== Extracted Changelog ==="
3135 cat changelog_tmp.md
3640 exit 0
3741 fi
3842
39- CHANGELOG_SIZE=$(wc -c < changelog_tmp.md)
40- echo "Changelog size: $CHANGELOG_SIZE bytes"
41-
42- # Crop to first 20,000 characters if too large
43- MAX_SIZE=20000
44- if [ "$CHANGELOG_SIZE" -gt "$MAX_SIZE" ]; then
45- echo "WARNING: Changelog too large, cropping to first $MAX_SIZE characters..."
46- head -c "$MAX_SIZE" changelog_tmp.md > changelog_cropped.md
47- mv changelog_cropped.md changelog_tmp.md
48- fi
49-
5043 echo "Creating GitHub release for $YESTERDAY..."
5144 gh release create "$YESTERDAY" -t "$YESTERDAY" -F changelog_tmp.md
0 commit comments