ci: attach APK to existing release when created via Forgejo UI

This commit is contained in:
2026-03-11 23:29:24 -04:00
parent 4b6fca39a8
commit fa1b65484c
+24 -18
View File
@@ -89,34 +89,40 @@ jobs:
path: build/app/outputs/flutter-apk/app-release.apk path: build/app/outputs/flutter-apk/app-release.apk
retention-days: 30 retention-days: 30
- name: Create Forgejo release - name: Publish Forgejo release
if: startsWith(github.ref, 'refs/tags/') if: startsWith(github.ref, 'refs/tags/')
env: env:
RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN }} RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN }}
TAG: ${{ github.ref_name }} TAG: ${{ github.ref_name }}
API: https://git.fabledsword.com/api/v1/repos/bvandeusen/FabledApp
run: | run: |
echo "Creating release $TAG..." # Look for an existing release (created via the UI or a prior run).
EXISTING=$(curl -s \
"$API/releases/tags/$TAG" \
-H "Authorization: token $RELEASE_TOKEN")
RESPONSE=$(curl -s -X POST \ RELEASE_ID=$(echo "$EXISTING" | grep -oE '"id":[[:space:]]*[0-9]+' | head -1 | grep -oE '[0-9]+')
"https://git.fabledsword.com/api/v1/repos/bvandeusen/FabledApp/releases" \
-H "Authorization: token $RELEASE_TOKEN" \
-H "Content-Type: application/json" \
-d "{\"tag_name\": \"$TAG\", \"name\": \"$TAG\", \"body\": \"\"}")
RELEASE_ID=$(echo "$RESPONSE" | grep -oE '"id":[[:space:]]*[0-9]+' | head -1 | grep -oE '[0-9]+') if [ -n "$RELEASE_ID" ]; then
echo "Found existing release $TAG (id $RELEASE_ID), attaching APK..."
if [ -z "$RELEASE_ID" ]; then else
echo "Failed to create release. API response:" echo "No existing release found, creating $TAG..."
echo "$RESPONSE" RESPONSE=$(curl -s -X POST "$API/releases" \
exit 1 -H "Authorization: token $RELEASE_TOKEN" \
-H "Content-Type: application/json" \
-d "{\"tag_name\": \"$TAG\", \"name\": \"$TAG\", \"body\": \"\"}")
RELEASE_ID=$(echo "$RESPONSE" | grep -oE '"id":[[:space:]]*[0-9]+' | head -1 | grep -oE '[0-9]+')
if [ -z "$RELEASE_ID" ]; then
echo "Failed to create release. API response:"
echo "$RESPONSE"
exit 1
fi
echo "Release created with id $RELEASE_ID."
fi fi
echo "Release created with ID $RELEASE_ID, uploading APK..." curl -s -X POST "$API/releases/$RELEASE_ID/assets" \
curl -s -X POST \
"https://git.fabledsword.com/api/v1/repos/bvandeusen/FabledApp/releases/$RELEASE_ID/assets" \
-H "Authorization: token $RELEASE_TOKEN" \ -H "Authorization: token $RELEASE_TOKEN" \
-F "attachment=@build/app/outputs/flutter-apk/app-release.apk" -F "attachment=@build/app/outputs/flutter-apk/app-release.apk"
echo "Done — release $TAG is live at:" echo "Done — $TAG is live at:"
echo "https://git.fabledsword.com/bvandeusen/FabledApp/releases/tag/$TAG" echo "https://git.fabledsword.com/bvandeusen/FabledApp/releases/tag/$TAG"