1
0
mirror of https://github.com/community-scripts/ProxmoxVE.git synced 2025-03-08 13:19:05 +00:00
ProxmoxVE/.github/workflows/github-release.yml

46 lines
1.5 KiB
YAML
Raw Normal View History

name: Create new release
on:
schedule:
2025-03-01 10:30:57 +01:00
- cron: '1 0 * * *' # Runs nightly
workflow_dispatch:
inputs:
force_release:
description: "Bypass changelog size limit"
required: false
default: "false"
jobs:
create-new-release:
runs-on: runner-cluster-htl-set
permissions:
contents: write
steps:
- name: Checkout code
uses: actions/checkout@v4
2025-03-01 10:29:07 +01:00
- name: Parse CHANGELOG.md for yesterday's entries and create a new release
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
2025-03-01 10:30:57 +01:00
FORCE_RELEASE: ${{ github.event.inputs.force_release }}
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)
2025-03-01 10:30:57 +01:00
echo "Changelog size: $CHANGELOG_SIZE bytes"
2025-03-01 10:29:07 +01:00
2025-03-01 10:30:57 +01:00
if [ "$CHANGELOG_SIZE" -gt 10000 ] && [ "$FORCE_RELEASE" != "true" ]; then
echo "ERROR: Changelog is too large! Manual review required."
echo "To manually trigger the release, use 'workflow_dispatch' with 'force_release: true'."
2025-03-01 10:29:07 +01:00
exit 1
fi
2025-03-01 10:29:07 +01:00
2025-03-01 10:30:57 +01:00
echo "Creating GitHub release for $YESTERDAY..."
2025-03-01 10:29:07 +01:00
gh release create "$YESTERDAY" -t "$YESTERDAY" -F changelog_tmp.md