ProxmoxVE/.github/workflows/github-release.yml

51 lines
1.7 KiB
YAML
Raw Normal View History

name: Create new release
on:
schedule:
2025-03-01 12:10:23 +00:00
- cron: '1 0 * * *' # Runs nightly
workflow_dispatch:
jobs:
create-new-release:
runs-on: runner-cluster-htl-set
permissions:
contents: write
steps:
- name: Checkout code
uses: actions/checkout@v4
2025-03-01 12:10:23 +00: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 12:10:23 +00:00
2025-03-01 12:23:44 +00:00
# Extract the changelog section for YESTERDAY, stopping at the next date
2025-03-01 12:10:23 +00:00
awk -v date="## $YESTERDAY" '
$0 ~ date {found=1; print; next}
found && /^## [0-9]{4}-[0-9]{2}-[0-9]{2}/ {exit}
found {print}
2025-03-01 12:23:44 +00:00
' CHANGELOG.md | sed '/^## [0-9]/d' > changelog_tmp.md
2025-03-01 12:10:23 +00:00
2025-03-01 12:23:44 +00:00
echo "=== Extracted Changelog ==="
cat changelog_tmp.md
echo "==========================="
2025-03-01 12:20:05 +00:00
2025-03-01 12:10:23 +00:00
if [ ! -s changelog_tmp.md ]; then
echo "No changes found for $YESTERDAY, skipping release."
exit 0
2025-03-01 09:29:07 +00:00
fi
2025-03-01 12:10:23 +00:00
2025-03-01 12:14:42 +00:00
CHANGELOG_SIZE=$(wc -c < changelog_tmp.md)
echo "Changelog size: $CHANGELOG_SIZE bytes"
# Crop to first 20,000 characters if too large
MAX_SIZE=20000
if [ "$CHANGELOG_SIZE" -gt "$MAX_SIZE" ]; then
echo "WARNING: Changelog too large, cropping to first $MAX_SIZE characters..."
head -c "$MAX_SIZE" changelog_tmp.md > changelog_cropped.md
mv changelog_cropped.md changelog_tmp.md
fi
2025-03-01 12:10:23 +00:00
echo "Creating GitHub release for $YESTERDAY..."
gh release create "$YESTERDAY" -t "$YESTERDAY" -F changelog_tmp.md