@@ -2,9 +2,13 @@ name: Create new release
22
33on :
44 schedule :
5- # Runs "At 00:01 every night" (UTC)
6- - cron : ' 1 0 * * *'
7- workflow_dispatch : # Allows manual execution
5+ - cron : ' 1 0 * * *' # Runs nightly
6+ workflow_dispatch :
7+ inputs :
8+ force_release :
9+ description : " Bypass changelog size limit"
10+ required : false
11+ default : " false"
812
913jobs :
1014 create-new-release :
1822 - name : Parse CHANGELOG.md for yesterday's entries and create a new release
1923 env :
2024 GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
25+ FORCE_RELEASE : ${{ github.event.inputs.force_release }}
2126 run : |
2227 YESTERDAY=$(date -u --date="yesterday" +%Y-%m-%d)
2328 awk '/^## '"$YESTERDAY"'/ {f=1; next} f && /^## [0-9]{4}-[0-9]{2}-[0-9]{2}/ {f=0} f && !/^## / {print}' CHANGELOG.md > changelog_tmp.md
@@ -28,12 +33,13 @@ jobs:
2833 fi
2934
3035 CHANGELOG_SIZE=$(wc -c < changelog_tmp.md)
36+ echo "Changelog size: $CHANGELOG_SIZE bytes"
3137
32- if [ "$CHANGELOG_SIZE" -gt 10000 ]; then
33- echo "ERROR: Changelog is too large to process automatically ! Manual review required."
34- echo "To manually trigger the release, use the 'workflow_dispatch' event ."
38+ if [ "$CHANGELOG_SIZE" -gt 10000 ] && [ "$FORCE_RELEASE" != "true" ] ; then
39+ echo "ERROR: Changelog is too large! Manual review required."
40+ echo "To manually trigger the release, use 'workflow_dispatch' with 'force_release: true' ."
3541 exit 1
3642 fi
3743
38- # Creating the GitHub release (without --latest)
44+ echo " Creating GitHub release for $YESTERDAY..."
3945 gh release create "$YESTERDAY" -t "$YESTERDAY" -F changelog_tmp.md
0 commit comments