2024-11-23 20:24:56 +01:00
|
|
|
name: Create new release
|
|
|
|
|
|
|
|
on:
|
|
|
|
schedule:
|
|
|
|
# Runs "At 00:01 every night" (UTC)
|
|
|
|
- cron: '1 0 * * *'
|
2025-03-01 10:29:07 +01:00
|
|
|
workflow_dispatch: # Allows manual execution
|
2024-11-23 20:24:56 +01:00
|
|
|
|
|
|
|
jobs:
|
|
|
|
create-new-release:
|
2025-02-28 15:15:29 +01:00
|
|
|
runs-on: runner-cluster-htl-set
|
2024-11-23 20:24:56 +01:00
|
|
|
permissions:
|
|
|
|
contents: write
|
|
|
|
steps:
|
|
|
|
- name: Checkout code
|
|
|
|
uses: actions/checkout@v4
|
2025-03-01 10:29:07 +01:00
|
|
|
|
2024-11-23 20:24:56 +01:00
|
|
|
- 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)
|
2025-03-01 10:29:07 +01:00
|
|
|
awk '/^## '"$YESTERDAY"'/ {f=1; next} f && /^## [0-9]{4}-[0-9]{2}-[0-9]{2}/ {f=0} f && !/^## / {print}' CHANGELOG.md > changelog_tmp.md
|
|
|
|
|
|
|
|
if [ ! -s changelog_tmp.md ]; then
|
|
|
|
echo "No changes found for $YESTERDAY, skipping release."
|
|
|
|
exit 0
|
|
|
|
fi
|
|
|
|
|
|
|
|
CHANGELOG_SIZE=$(wc -c < changelog_tmp.md)
|
|
|
|
|
|
|
|
if [ "$CHANGELOG_SIZE" -gt 10000 ]; then
|
|
|
|
echo "ERROR: Changelog is too large to process automatically! Manual review required."
|
|
|
|
echo "To manually trigger the release, use the 'workflow_dispatch' event."
|
|
|
|
exit 1
|
2024-11-23 20:24:56 +01:00
|
|
|
fi
|
2025-03-01 10:29:07 +01:00
|
|
|
|
|
|
|
# Creating the GitHub release (without --latest)
|
|
|
|
gh release create "$YESTERDAY" -t "$YESTERDAY" -F changelog_tmp.md
|