diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b2c9ff6f..089a7e16 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -7,6 +7,7 @@ jobs: runs-on: ubuntu-latest env: JVM_OPTS: -Xmx6G + IS_SKYLINE_SIGNED: ${{ secrets.KEYSTORE != '' }} steps: - name: Git Checkout @@ -44,33 +45,58 @@ jobs: run: echo "yes" | $ANDROID_HOME/tools/bin/sdkmanager "cmake;3.18.1" "ndk;25.0.8221429" --channel=3 | grep -v = || true - name: Decode Keystore + if: ${{ env.IS_SKYLINE_SIGNED == 'true' }} env: KEYSTORE_ENCODED: ${{ secrets.KEYSTORE }} - run: echo $KEYSTORE_ENCODED | base64 --decode > "$HOME/keystore.jks" + run: echo $KEYSTORE_ENCODED | base64 --decode > "/home/runner/keystore.jks" - name: Android Assemble env: + SIGNING_STORE_PATH: "/home/runner/keystore.jks" SIGNING_STORE_PASSWORD: ${{ secrets.SIGNING_STORE_PASSWORD }} SIGNING_KEY_ALIAS: ${{ secrets.SIGNING_KEY_ALIAS }} SIGNING_KEY_PASSWORD: ${{ secrets.SIGNING_KEY_PASSWORD }} run: ./gradlew --stacktrace --configuration-cache --build-cache --parallel --configure-on-demand assemble - - name: Rename APKs + - name: Rename APKs (Signed) + if: ${{ env.IS_SKYLINE_SIGNED == 'true' }} run: | mv app/build/outputs/apk/debug/app-debug.apk skyline-$GITHUB_RUN_NUMBER-debug.apk mv app/build/outputs/apk/release/app-release.apk skyline-$GITHUB_RUN_NUMBER-release.apk - - name: Upload Debug APK + - name: Upload Signed Debug APK + if: ${{ env.IS_SKYLINE_SIGNED == 'true' }} uses: actions/upload-artifact@v3 with: name: skyline-${{ github.run_number }}-debug.apk path: skyline-${{ github.run_number }}-debug.apk - - name: Upload Release APK + - name: Upload Signed Release APK + if: ${{ env.IS_SKYLINE_SIGNED == 'true' }} uses: actions/upload-artifact@v3 with: name: skyline-${{ github.run_number }}-release.apk path: skyline-${{ github.run_number }}-release.apk + - name: Rename APKs (Unsigned) + if: ${{ env.IS_SKYLINE_SIGNED == 'false' }} + run: | + mv app/build/outputs/apk/debug/app-debug.apk skyline-$GITHUB_RUN_NUMBER-unsigned-debug.apk + mv app/build/outputs/apk/release/app-release.apk skyline-$GITHUB_RUN_NUMBER-unsigned-release.apk + + - name: Upload Unsigned Debug APK + if: ${{ env.IS_SKYLINE_SIGNED == 'false' }} + uses: actions/upload-artifact@v3 + with: + name: skyline-${{ github.run_number }}-unsigned-debug.apk + path: skyline-${{ github.run_number }}-unsigned-debug.apk + + - name: Upload Unsigned Release APK + if: ${{ env.IS_SKYLINE_SIGNED == 'false' }} + uses: actions/upload-artifact@v3 + with: + name: skyline-${{ github.run_number }}-unsigned-release.apk + path: skyline-${{ github.run_number }}-unsigned-release.apk + - name: Delete Build Folder run: rm -rf app/build/ diff --git a/app/build.gradle b/app/build.gradle index bd767986..76925577 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -43,7 +43,7 @@ android { signingConfigs { ci { - storeFile file("${System.getProperty("user.home")}/keystore.jks") + storeFile file(System.getenv("SIGNING_STORE_PATH") ?: "${System.getenv("user.home")}/keystore.jks") storePassword System.getenv("SIGNING_STORE_PASSWORD") keyAlias System.getenv("SIGNING_KEY_ALIAS") keyPassword System.getenv("SIGNING_KEY_PASSWORD") @@ -61,14 +61,14 @@ android { minifyEnabled true shrinkResources true proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - signingConfig = System.getenv("CI") ? signingConfigs.ci : signingConfigs.debug + signingConfig = (System.getenv("CI") == "true") && (System.getenv("IS_SKYLINE_SIGNED") == "true") ? signingConfigs.ci : signingConfigs.debug } debug { debuggable true minifyEnabled false shrinkResources false - signingConfig = System.getenv("CI") ? signingConfigs.ci : signingConfigs.debug + signingConfig = (System.getenv("CI") == "true") && (System.getenv("IS_SKYLINE_SIGNED") == "true") ? signingConfigs.ci : signingConfigs.debug } }