1- name : Create new release
1+ name : Create Daily Release
22
33on :
44 schedule :
5- - cron : ' 1 0 * * *' # Runs nightly
5+ - cron : ' 1 0 * * *' # Runs daily at 00:01 UTC
66 workflow_dispatch :
77
88jobs :
9- create-new -release :
9+ create-daily -release :
1010 runs-on : runner-cluster-htl-set
1111 permissions :
1212 contents : write
1313 steps :
14- - name : Checkout code
14+ - name : Checkout repository
1515 uses : actions/checkout@v4
1616
17- - name : Parse CHANGELOG.md for yesterday's entries and create a new release
17+ - name : Extract first 5000 characters from CHANGELOG.md
18+ run : head -c 5000 CHANGELOG.md > changelog_cropped.md
19+
20+ - name : Debugging - Show extracted changelog
21+ run : |
22+ echo "=== CHANGELOG EXCERPT ==="
23+ cat changelog_cropped.md
24+ echo "========================="
25+
26+ - name : Parse CHANGELOG.md and create release
1827 env :
1928 GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
2029 run : |
2130 YESTERDAY=$(date -u --date="yesterday" +%Y-%m-%d)
31+ echo "Checking for changes on: $YESTERDAY"
2232
23- # Crop the changelog first (keep first 20,000 characters)
24- MAX_SIZE=20000
25- head -c "$MAX_SIZE" CHANGELOG.md > changelog_cropped.md
33+ # Ensure yesterday's date exists in the changelog
34+ if ! grep -q "## $YESTERDAY" changelog_cropped.md; then
35+ echo "No entry found for $YESTERDAY, skipping release."
36+ exit 0
37+ fi
2638
27- # Extract exactly the section for YESTERDAY, stopping at the next date
39+ # Extract section for yesterday's date
2840 awk -v date="## $YESTERDAY" '
29- $0 ~ date {found=1}
30- found && /^## [0-9]{4}-[0-9]{2}-[0-9]{2}/ && $0 != date {exit}
41+ $0 ~ date {found=1; next }
42+ found && /^## [0-9]{4}-[0-9]{2}-[0-9]{2}/ {exit}
3143 found
3244 ' changelog_cropped.md > changelog_tmp.md
3345
3446 echo "=== Extracted Changelog ==="
3547 cat changelog_tmp.md
3648 echo "==========================="
3749
50+ # Skip if no content was found
3851 if [ ! -s changelog_tmp.md ]; then
3952 echo "No changes found for $YESTERDAY, skipping release."
4053 exit 0
4154 fi
4255
43- echo "Creating GitHub release for $YESTERDAY..."
44- gh release create "$YESTERDAY" -t "$YESTERDAY" -F changelog_tmp.md
56+ # Create GitHub release
57+ gh release create "$YESTERDAY" -t "$YESTERDAY" -F changelog_tmp.md
0 commit comments