From 5c23642ac0ae064c24bb4e49dfba8a5f210d1964 Mon Sep 17 00:00:00 2001 From: Huang Xin Date: Sun, 13 Apr 2025 21:33:08 +0800 Subject: [PATCH] chore: generate Android package signature and download url in update file --- .github/workflows/release.yml | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8c4ee7a7..5132b441 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -130,7 +130,7 @@ jobs: - uses: Swatinem/rust-cache@v2 with: - key: ${{ matrix.config.os }}-cargo-${{ hashFiles('Cargo.lock') }} + key: ${{ matrix.config.os }}-${{ matrix.config.release }}-${{ matrix.config.arch }}-cargo - name: install dependencies (ubuntu only) if: contains(matrix.config.os, 'ubuntu') && matrix.config.release != 'android' @@ -152,6 +152,8 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} NDK_HOME: ${{ env.ANDROID_HOME }}/ndk/27.0.11902837 + TAURI_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }} + TAURI_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }} run: | cd apps/readest-app/ rm -rf src-tauri/gen/android @@ -179,6 +181,37 @@ jobs: gh release upload ${{ needs.get-release.outputs.release_tag }} $universial_apk --clobber echo "Uploading $arm64_apk to GitHub release" gh release upload ${{ needs.get-release.outputs.release_tag }} $arm64_apk --clobber + echo "Uploading signatures to GitHub release" + pnpm tauri signer sign $universial_apk + pnpm tauri signer sign $arm64_apk + gh release upload ${{ needs.get-release.outputs.release_tag }} $universial_apk.sig --clobber + gh release upload ${{ needs.get-release.outputs.release_tag }} $arm64_apk.sig --clobber + + - name: download and update latest.json for Android release + if: matrix.config.release == 'android' + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + cd apps/readest-app/ + curl -sL https://github.com/readest/readest/releases/latest/download/latest.json -o latest.json + + version=${{ needs.get-release.outputs.release_version }} + universial_apk_url="https://github.com/readest/readest/releases/download/${{ needs.get-release.outputs.release_tag }}/Readest_${version}_universal.apk" + arm64_apk_url="https://github.com/readest/readest/releases/download/${{ needs.get-release.outputs.release_tag }}/Readest_${version}_arm64.apk" + + universial_sig=$(cat Readest_${version}_universal.apk.sig) + arm64_sig=$(cat Readest_${version}_arm64.apk.sig) + + jq --arg url "$universial_apk_url" \ + --arg sig "$universial_sig" \ + '.platforms["android-universal"] = {url: $url, signature: $sig}' latest.json > tmp.$$.json && mv tmp.$$.json latest.json + + jq --arg url "$arm64_apk_url" \ + --arg sig "$arm64_sig" \ + '.platforms["android-arm64"] = {url: $url, signature: $sig}' latest.json > tmp.$$.json && mv tmp.$$.json latest.json + + echo "Uploading updated latest.json to GitHub release" + gh release upload ${{ needs.get-release.outputs.release_tag }} latest.json --clobber - uses: tauri-apps/tauri-action@v0 if: matrix.config.release != 'android'