From 6d3238c9f7cda2df9be2df779f79cecaa0a7ceeb Mon Sep 17 00:00:00 2001 From: gongyun Date: Fri, 15 May 2026 10:39:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=B7=A5=E4=BD=9C=E6=B5=81ya?= =?UTF-8?q?ml=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/build.yml | 228 +++++++++++++++++++++++++++++++++++++ 1 file changed, 228 insertions(+) create mode 100644 .gitea/workflows/build.yml diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml new file mode 100644 index 0000000..a39e415 --- /dev/null +++ b/.gitea/workflows/build.yml @@ -0,0 +1,228 @@ +name: Build Release + +on: + push: + tags: + - "*" + +permissions: + contents: read + +jobs: + android: + name: Build Android + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up Java + uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: "17" + + - name: Set up Flutter + uses: subosito/flutter-action@v2 + with: + channel: stable + cache: true + + - name: Install dependencies + run: flutter pub get + + - name: Restore Android signing files + shell: bash + env: + ANDROID_KEYSTORE_BASE64: ${{ secrets.ANDROID_KEYSTORE_BASE64 }} + ANDROID_STORE_PASSWORD: ${{ secrets.ANDROID_STORE_PASSWORD }} + ANDROID_KEY_ALIAS: ${{ secrets.ANDROID_KEY_ALIAS }} + ANDROID_KEY_PASSWORD: ${{ secrets.ANDROID_KEY_PASSWORD }} + run: | + if [ -z "$ANDROID_KEYSTORE_BASE64" ] || [ -z "$ANDROID_STORE_PASSWORD" ] || [ -z "$ANDROID_KEY_ALIAS" ] || [ -z "$ANDROID_KEY_PASSWORD" ]; then + echo "Android signing secrets are required: ANDROID_KEYSTORE_BASE64, ANDROID_STORE_PASSWORD, ANDROID_KEY_ALIAS, ANDROID_KEY_PASSWORD" + exit 1 + fi + + printf "%s" "$ANDROID_KEYSTORE_BASE64" | base64 -d > android/app-release.jks + cat > android/key.properties < asset-ids-to-delete.txt + import json + + names = {"gongyun-app-release.apk", "gongyun.zip"} + with open("assets.json", encoding="utf-8") as f: + for asset in json.load(f): + if asset.get("name") in names: + print(asset["id"]) + PY + + while IFS= read -r asset_id; do + if [ -n "$asset_id" ]; then + curl -sS -f \ + -X DELETE \ + -H "Authorization: token $GITEA_TOKEN" \ + "$ASSETS_URL/$asset_id" + fi + done < asset-ids-to-delete.txt + + upload_asset() { + local file="$1" + local name + name="$(basename "$file")" + + curl -sS -f \ + -X POST \ + -H "Authorization: token $GITEA_TOKEN" \ + -F "attachment=@$file" \ + "$ASSETS_URL?name=$name" + } + + upload_asset dist/gongyun-app-release.apk + upload_asset dist/gongyun.zip