Skip to content

Commit 9e0a80a

Browse files
ci update
1 parent 87a21fc commit 9e0a80a

1 file changed

Lines changed: 41 additions & 10 deletions

File tree

.github/workflows/build-signed-apk.yml

Lines changed: 41 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313

1414
env:
1515
JAVA_VERSION: '17'
16-
ANDROID_SDK_ROOT: /usr/local/android-sdk
16+
ANDROID_SDK_ROOT: ${{ github.workspace }}/android-sdk
1717
ANDROID_KEYSTORE_BASE64: ${{ secrets.ANDROID_KEYSTORE_BASE64 }}
1818
ANDROID_KEYSTORE_PASSWORD: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }}
1919
ANDROID_KEY_ALIAS: ${{ secrets.ANDROID_KEY_ALIAS }}
@@ -23,15 +23,17 @@ jobs:
2323
- name: Checkout
2424
uses: actions/checkout@v4
2525

26-
- name: Set up JDK ${{ env.JAVA_VERSION }}
26+
- name: Set up JDK
2727
uses: actions/setup-java@v4
2828
with:
2929
distribution: temurin
3030
java-version: ${{ env.JAVA_VERSION }}
31-
cache: 'gradle'
31+
cache: gradle
3232

3333
- name: Set up Android SDK
3434
uses: android-actions/setup-android@v3
35+
with:
36+
sdk-path: ${{ env.ANDROID_SDK_ROOT }}
3537

3638
- name: Accept Android licenses
3739
run: yes | sdkmanager --licenses
@@ -58,32 +60,33 @@ jobs:
5860
UNSIGNED_APK=$(find app/build/outputs/apk/release -name "*.apk" | head -n 1)
5961
echo "Found unsigned APK: $UNSIGNED_APK"
6062
ZIPALIGNED_APK=${UNSIGNED_APK%.apk}-aligned.apk
61-
"/usr/local/android-sdk/build-tools/36.0.0/zipalign" -v -p 4 "$UNSIGNED_APK" "$ZIPALIGNED_APK"
62-
echo "ZIPALIGNED_APK=$ZIPALIGNED_APK" >> $GITHUB_ENV
63+
"${ANDROID_SDK_ROOT}/build-tools/36.0.0/zipalign" -v -p 4 "$UNSIGNED_APK" "$ZIPALIGNED_APK"
64+
echo "ZIPALIGNED_APK=${ZIPALIGNED_APK}" >> $GITHUB_ENV
6365
6466
- name: Sign APK
6567
if: ${{ github.event_name != 'pull_request' && env.ANDROID_KEYSTORE_BASE64 != '' }}
6668
run: |
6769
APK_TO_SIGN="$ZIPALIGNED_APK"
68-
/usr/local/android-sdk/build-tools/36.0.0/apksigner sign \
70+
"${ANDROID_SDK_ROOT}/build-tools/36.0.0/apksigner" sign \
6971
--ks app/release.keystore \
7072
--ks-pass pass:"$ANDROID_KEYSTORE_PASSWORD" \
7173
--key-pass pass:"$ANDROID_KEY_PASSWORD" \
7274
--ks-key-alias "$ANDROID_KEY_ALIAS" \
7375
"$APK_TO_SIGN"
74-
echo "SIGNED_APK=$APK_TO_SIGN" >> $GITHUB_ENV
76+
echo "SIGNED_APK=${APK_TO_SIGN}" >> $GITHUB_ENV
7577
7678
- name: Verify APK signature
7779
if: ${{ github.event_name != 'pull_request' && env.ANDROID_KEYSTORE_BASE64 != '' }}
78-
run: /usr/local/android-sdk/build-tools/36.0.0/apksigner verify --print-certs "$SIGNED_APK"
80+
run: |
81+
"${ANDROID_SDK_ROOT}/build-tools/36.0.0/apksigner" verify --print-certs "$SIGNED_APK"
7982
8083
- name: Collect artifact path
8184
run: |
8285
if [ -n "$SIGNED_APK" ]; then
83-
echo "ARTIFACT_APK=$SIGNED_APK" >> $GITHUB_ENV
86+
echo "ARTIFACT_APK=${SIGNED_APK}" >> $GITHUB_ENV
8487
else
8588
APK=$(find app/build/outputs/apk/release -name "*.apk" | head -n 1)
86-
echo "ARTIFACT_APK=$APK" >> $GITHUB_ENV
89+
echo "ARTIFACT_APK=${APK}" >> $GITHUB_ENV
8790
fi
8891
8992
- name: Upload APK artifact
@@ -92,3 +95,31 @@ jobs:
9295
name: Multiply-APK
9396
path: ${{ env.ARTIFACT_APK }}
9497
if-no-files-found: error
98+
99+
release:
100+
needs: build
101+
if: ${{ github.ref == 'refs/heads/main' || github.ref == 'refs/heads/master' }}
102+
runs-on: ubuntu-latest
103+
104+
steps:
105+
- name: Download build artifact
106+
uses: actions/download-artifact@v5
107+
with:
108+
name: Multiply-APK
109+
path: ./release-apk
110+
111+
- name: Get APK filename
112+
id: get_apk
113+
run: |
114+
echo "APK_FILE=$(find ./release-apk -name '*.apk' | head -n 1)" >> $GITHUB_ENV
115+
116+
- name: Create GitHub Release
117+
uses: softprops/action-gh-release@v2
118+
with:
119+
files: ${{ env.APK_FILE }}
120+
tag_name: v${{ github.run_number }}
121+
name: "Release Build #${{ github.run_number }}"
122+
draft: false
123+
prerelease: false
124+
env:
125+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

0 commit comments

Comments
 (0)