android-app-v1.3.1 build
Android APK Release / Build Android APK (push) Successful in 1h4m41s

This commit is contained in:
2026-05-21 20:29:39 +08:00
parent 2434c27ac4
commit b4259e56c1
2 changed files with 55 additions and 19 deletions
@@ -1,4 +1,4 @@
name: Build Android Release
name: Android APK Release
on:
push:
@@ -6,7 +6,7 @@ on:
- main
- master
tags:
- "*"
- "android-app-v*"
workflow_dispatch:
permissions:
@@ -16,7 +16,7 @@ permissions:
jobs:
android:
name: Build Android
name: Build Android APK
runs-on: ubuntu-latest
steps:
@@ -163,31 +163,31 @@ jobs:
exit 1
fi
cp "$apk_path" "$pkg_dir/gongyun-app-release.apk"
ls -alh "$pkg_dir/gongyun-app-release.apk"
cp "$apk_path" "$pkg_dir/gongyun-android-app-release.apk"
ls -alh "$pkg_dir/gongyun-android-app-release.apk"
- name: Rename Android APK
- name: Prepare Android APK artifact
shell: bash
run: |
set -euo pipefail
apk="dist/android/gongyun-app-release.apk"
apk="dist/android/gongyun-android-app-release.apk"
if [ ! -f "$apk" ]; then
echo "Release APK was not found at $apk."
exit 1
fi
cp "$apk" gongyun-app-release.apk
ls -alh gongyun-app-release.apk
cp "$apk" gongyun-android-app-release.apk
ls -alh gongyun-android-app-release.apk
- name: Upload Android APK artifact
uses: actions/upload-artifact@v3
with:
name: gongyun-app-release.apk
path: gongyun-app-release.apk
name: gongyun-android-app-release.apk
path: gongyun-android-app-release.apk
- name: Publish Gitea release
if: startsWith(github.ref, 'refs/tags/')
if: startsWith(github.ref, 'refs/tags/android-app-v')
shell: bash
env:
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
@@ -196,6 +196,7 @@ jobs:
GITEA_REPO: app
TAG_NAME: ${{ github.ref_name }}
TARGET_COMMITISH: ${{ github.sha }}
ANDROID_APK_FILE: gongyun-android-app-release.apk
run: |
set -euo pipefail
@@ -206,6 +207,8 @@ jobs:
releases_url="$GITEA_API_URL/repos/$GITEA_OWNER/$GITEA_REPO/releases"
release_by_tag_url="$releases_url/tags/$TAG_NAME"
export RELEASE_TITLE="Android App APK ${TAG_NAME}"
export RELEASE_BODY="Android app installation package (APK) for ${TAG_NAME}."
status="$(curl -sS -o release.json -w "%{http_code}" \
-H "Authorization: token $GITEA_TOKEN" \
@@ -220,8 +223,8 @@ jobs:
print(json.dumps({
"tag_name": tag,
"target_commitish": os.environ.get("TARGET_COMMITISH", ""),
"name": tag,
"body": f"Automated release for {tag}.",
"name": f"Android App APK {tag}",
"body": f"Android app installation package (APK) for {tag}.",
"draft": False,
"prerelease": False,
}))
@@ -250,6 +253,32 @@ jobs:
PY
)"
release_update_payload="$(python3 - <<'PY'
import json
import os
print(json.dumps({
"name": os.environ["RELEASE_TITLE"],
"body": os.environ["RELEASE_BODY"],
"draft": False,
"prerelease": False,
}))
PY
)"
update_status="$(curl -sS -o release.json -w "%{http_code}" \
-X PATCH \
-H "Authorization: token $GITEA_TOKEN" \
-H "Content-Type: application/json" \
-d "$release_update_payload" \
"$releases_url/$release_id")"
if [ "$update_status" != "200" ]; then
echo "Failed to update Android release metadata. HTTP status: $update_status"
cat release.json
exit 1
fi
assets_url="$releases_url/$release_id/assets"
curl -sS -f \
@@ -259,8 +288,14 @@ jobs:
python3 - <<'PY' > asset-ids-to-delete.txt
import json
import os
names = {"gongyun-app-release.apk"}
tag = os.environ["TAG_NAME"]
names = {
os.environ["ANDROID_APK_FILE"],
f"gongyun-{tag}.apk",
"gongyun-app-release.apk",
}
with open("assets.json", encoding="utf-8") as f:
for asset in json.load(f):
if asset.get("name") in names:
@@ -276,18 +311,19 @@ jobs:
fi
done < asset-ids-to-delete.txt
release_asset_name="gongyun-${TAG_NAME}.apk"
curl -sS -f \
-X POST \
-H "Authorization: token $GITEA_TOKEN" \
-F "attachment=@gongyun-app-release.apk" \
"$assets_url?name=gongyun-app-release.apk"
-F "attachment=@$ANDROID_APK_FILE" \
"$assets_url?name=$release_asset_name"
- name: Post-build disk cleanup
if: always()
shell: bash
run: |
set -euo pipefail
rm -rf build dist .dart_tool android/.gradle android/app-release.jks android/key.properties || true
rm -rf build dist .dart_tool android/.gradle android/app-release.jks android/key.properties gongyun-android-app-release.apk gongyun-app-release.apk || true
if command -v docker >/dev/null 2>&1; then
docker system prune -af --volumes || true
docker builder prune -af || true
+1 -1
View File
@@ -16,7 +16,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
# In Windows, build-name is used as the major, minor, and patch parts
# of the product and file versions while build-number is used as the build suffix.
version: 1.3.0+1
version: 1.3.1+2
environment:
sdk: ^3.11.4