Add changelog to GitHub release body

- Created generate_release_body.sh script to combine changelog with store links
- Updated build.yml workflow to use new release body
- Updated patch.yml workflow to use new release body
- Release body now includes latest changelog entry followed by store download links

Co-authored-by: jonasbark <1151304+jonasbark@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2025-11-09 07:12:43 +00:00
parent 859424b895
commit df2496eb67
3 changed files with 49 additions and 3 deletions

View File

@@ -152,6 +152,12 @@ jobs:
mkdir -p whatsnew
./scripts/get_latest_changelog.sh | head -c 500 > whatsnew/whatsnew-en-US
- name: Generate release body
if: inputs.build_github
run: |
chmod +x scripts/generate_release_body.sh
./scripts/generate_release_body.sh > /tmp/release_body.md
- name: 🚀 Shorebird Release iOS
if: inputs.build_ios
uses: shorebirdtech/shorebird-release@v1
@@ -248,7 +254,7 @@ jobs:
artifacts: "build/app/outputs/flutter-apk/SwiftControl.android.apk,build/macos/Build/Products/Release/SwiftControl.macos.zip"
allowUpdates: true
prerelease: true
bodyFile: scripts/RELEASE_NOTES.md
bodyFile: /tmp/release_body.md
tag: v${{ env.VERSION }}
token: ${{ secrets.TOKEN }}
@@ -340,13 +346,19 @@ jobs:
}
echo "VERSION=$version" >> $env:GITHUB_ENV
- name: Generate release body (Windows)
shell: bash
run: |
chmod +x scripts/generate_release_body.sh
./scripts/generate_release_body.sh > /tmp/release_body.md
- name: Update Release
uses: ncipollo/release-action@v1
with:
allowUpdates: true
artifacts: "build/windows/x64/runner/Release/SwiftControl.windows.zip,build/windows/x64/runner/Release/SwiftControl.windows.msix"
bodyFile: scripts/RELEASE_NOTES.md
bodyFile: /tmp/release_body.md
prerelease: true
tag: v${{ env.VERSION }}
token: ${{ secrets.TOKEN }}

View File

@@ -125,13 +125,18 @@ jobs:
path: |
build/macos/Build/Products/Release/SwiftControl.macos.zip
- name: Generate release body
run: |
chmod +x scripts/generate_release_body.sh
./scripts/generate_release_body.sh > /tmp/release_body.md
# add artifact to release
- name: Create Release
uses: ncipollo/release-action@v1
with:
allowUpdates: true
artifacts: "build/macos/Build/Products/Release/SwiftControl.macos.zip"
bodyFile: scripts/RELEASE_NOTES.md
bodyFile: /tmp/release_body.md
prerelease: true
tag: v${{ env.VERSION }}
token: ${{ secrets.TOKEN }}

View File

@@ -0,0 +1,29 @@
#!/bin/bash
# Script to generate GitHub release body with changelog and store links
# Usage: ./scripts/generate_release_body.sh
# Get the directory where this script is located
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
CHANGELOG_FILE="$PROJECT_ROOT/CHANGELOG.md"
RELEASE_NOTES_FILE="$SCRIPT_DIR/RELEASE_NOTES.md"
if [ ! -f "$CHANGELOG_FILE" ]; then
echo "Error: CHANGELOG.md not found at $CHANGELOG_FILE"
exit 1
fi
if [ ! -f "$RELEASE_NOTES_FILE" ]; then
echo "Error: RELEASE_NOTES.md not found at $RELEASE_NOTES_FILE"
exit 1
fi
# Extract the first changelog entry (between first ### and second ###)
LATEST_CHANGELOG=$(awk '/^### / {if (count++) exit} count' "$CHANGELOG_FILE" | sed 's/^- /• /')
# Combine changelog with release notes
echo "$LATEST_CHANGELOG"
echo ""
echo "---"
echo ""
cat "$RELEASE_NOTES_FILE"