From 4c266aeb42649942ad63ad27fafb4b8540f62feb Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Sat, 1 Mar 2025 10:36:34 +0100 Subject: [PATCH] Update github-release.yml --- .github/workflows/github-release.yml | 36 ++++++++-------------------- 1 file changed, 10 insertions(+), 26 deletions(-) diff --git a/.github/workflows/github-release.yml b/.github/workflows/github-release.yml index ae6adceb..c49f17f3 100644 --- a/.github/workflows/github-release.yml +++ b/.github/workflows/github-release.yml @@ -2,8 +2,8 @@ name: Create new release on: schedule: - - cron: '1 0 * * *' # Runs nightly - workflow_dispatch: + # Runs "At 00:01 every night" (UTC) + - cron: '1 0 * * *' jobs: create-new-release: @@ -13,33 +13,17 @@ jobs: steps: - name: Checkout code uses: actions/checkout@v4 - - name: Parse CHANGELOG.md for yesterday's entries and create a new release env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | YESTERDAY=$(date -u --date="yesterday" +%Y-%m-%d) - - # Extract entries for only yesterday - awk -v date="## $YESTERDAY" ' - $0 ~ date {found=1; next} - found && /^## [0-9]{4}-[0-9]{2}-[0-9]{2}/ {found=0} - found {print} - ' CHANGELOG.md > changelog_tmp.md - - if [ ! -s changelog_tmp.md ]; then - echo "No changes found for $YESTERDAY, skipping release." - exit 0 + YESTERDAY_CHANGELOG_NOTES=$(awk '/^## '"$YESTERDAY"'/ {f=1; next} f && /^## [0-9]{4}-[0-9]{2}-[0-9]{2}/ {f=0} f && !/^## / {print}' CHANGELOG.md) + + if [ ${#YESTERDAY_CHANGELOG_NOTES} -gt 10000 ]; then + echo "Changelog is too large, saving to file..." + echo "$YESTERDAY_CHANGELOG_NOTES" > changelog_tmp.md + gh release create "$YESTERDAY" -t "$YESTERDAY" -F changelog_tmp.md --latest + elif [ -n "$YESTERDAY_CHANGELOG_NOTES" ]; then + gh release create "$YESTERDAY" -t "$YESTERDAY" -n "$YESTERDAY_CHANGELOG_NOTES" --latest fi - - CHANGELOG_SIZE=$(wc -c < changelog_tmp.md) - echo "Changelog size: $CHANGELOG_SIZE bytes" - - if [ "$CHANGELOG_SIZE" -gt 10000 ]; then - echo "WARNING: Changelog too large, cropping to last 10,000 bytes..." - tail -c 10000 changelog_tmp.md > changelog_cropped.md - mv changelog_cropped.md changelog_tmp.md - fi - - echo "Creating GitHub release for $YESTERDAY..." - gh release create "$YESTERDAY" -t "$YESTERDAY" -F changelog_tmp.md