Skip to content

Commit 0febb1b

Browse files
committed
Android github actions: Producing signed release builds together with debug builds
1 parent f3c56db commit 0febb1b

2 files changed

Lines changed: 41 additions & 4 deletions

File tree

.github/workflows/build_all.yml

Lines changed: 34 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -590,19 +590,48 @@ jobs:
590590
working-directory: ${{runner.workspace}}/android-sdr-kit
591591
run: docker build --progress=plain -t android-sdr-kit .
592592

593-
- name: Build
593+
- name: Build Debug APK
594594
run: docker run --name build -v $GITHUB_WORKSPACE:/root/SDRPlusPlus android-sdr-kit /bin/bash -l -c "cd /root/SDRPlusPlus/android && gradle --info assembleDebug"
595595

596-
- name: Recover APK
596+
- name: Recover Debug APK
597597
working-directory: ${{runner.workspace}}
598598
run: docker cp build:/root/SDRPlusPlus/android/app/build/outputs/apk/debug/app-debug.apk ./ && mv app-debug.apk sdrpp.apk
599599

600-
- name: Save APK
600+
- name: Save Debug APK
601601
uses: actions/upload-artifact@v4
602602
with:
603603
name: sdrpp_android
604604
path: ${{runner.workspace}}/sdrpp.apk
605605

606+
- name: Decode Keystore
607+
if: ${{ secrets.ANDROID_KEYSTORE_BASE64 != '' }}
608+
run: echo "${{ secrets.ANDROID_KEYSTORE_BASE64 }}" | base64 -d > ${{runner.workspace}}/release.keystore
609+
610+
- name: Build Signed Release APK
611+
if: ${{ secrets.ANDROID_KEYSTORE_BASE64 != '' }}
612+
run: |
613+
docker rm build
614+
docker run --name build_release \
615+
-e ANDROID_KEYSTORE_FILE=/root/release.keystore \
616+
-e ANDROID_KEYSTORE_PASSWORD=${{ secrets.ANDROID_KEYSTORE_PASSWORD }} \
617+
-e ANDROID_KEY_ALIAS=${{ secrets.ANDROID_KEY_ALIAS }} \
618+
-e ANDROID_KEY_PASSWORD=${{ secrets.ANDROID_KEY_PASSWORD }} \
619+
-v $GITHUB_WORKSPACE:/root/SDRPlusPlus \
620+
-v ${{runner.workspace}}/release.keystore:/root/release.keystore \
621+
android-sdr-kit /bin/bash -l -c "cd /root/SDRPlusPlus/android && gradle --info assembleRelease"
622+
623+
- name: Recover Release APK
624+
if: ${{ secrets.ANDROID_KEYSTORE_BASE64 != '' }}
625+
working-directory: ${{runner.workspace}}
626+
run: docker cp build_release:/root/SDRPlusPlus/android/app/build/outputs/apk/release/app-release.apk ./ && mv app-release.apk sdrpp_release.apk
627+
628+
- name: Save Release APK
629+
if: ${{ secrets.ANDROID_KEYSTORE_BASE64 != '' }}
630+
uses: actions/upload-artifact@v4
631+
with:
632+
name: sdrpp_android_release
633+
path: ${{runner.workspace}}/sdrpp_release.apk
634+
606635
create_full_archive:
607636
needs: [
608637
'build_windows',
@@ -650,7 +679,8 @@ jobs:
650679
mv sdrpp_ubuntu_jammy_aarch64/sdrpp_debian_amd64.deb sdrpp_all/sdrpp_ubuntu_jammy_aarch64.deb &&
651680
mv sdrpp_ubuntu_noble_amd64/sdrpp_debian_amd64.deb sdrpp_all/sdrpp_ubuntu_noble_amd64.deb &&
652681
mv sdrpp_ubuntu_noble_aarch64/sdrpp_debian_amd64.deb sdrpp_all/sdrpp_ubuntu_noble_aarch64.deb &&
653-
mv sdrpp_android/sdrpp.apk sdrpp_all/sdrpp.apk
682+
mv sdrpp_android/sdrpp.apk sdrpp_all/sdrpp.apk &&
683+
([ -d sdrpp_android_release ] && mv sdrpp_android_release/sdrpp_release.apk sdrpp_all/sdrpp_release.apk || true)
654684
655685
- uses: actions/upload-artifact@v4
656686
with:

android/app/build.gradle

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,19 @@ android {
2525
keyAlias "androiddebugkey"
2626
keyPassword "android"
2727
}
28+
release {
29+
storeFile file(System.getenv("ANDROID_KEYSTORE_FILE") ?: "release.keystore")
30+
storePassword System.getenv("ANDROID_KEYSTORE_PASSWORD") ?: ""
31+
keyAlias System.getenv("ANDROID_KEY_ALIAS") ?: ""
32+
keyPassword System.getenv("ANDROID_KEY_PASSWORD") ?: ""
33+
}
2834
}
2935

3036
buildTypes {
3137
release {
3238
minifyEnabled false
3339
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt')
40+
signingConfig = signingConfigs.release
3441
}
3542
debug {
3643
signingConfig = signingConfigs.debug

0 commit comments

Comments
 (0)