diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8209a70..f82621f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -86,7 +86,16 @@ jobs: - name: Generate code run: dart run build_runner build --delete-conflicting-outputs + - name: Decode release keystore + run: | + echo "${{ secrets.ANDROID_KEYSTORE_BASE64 }}" | base64 --decode > "${{ runner.temp }}/release.jks" + - name: Package APK + env: + KEYSTORE_PATH: ${{ runner.temp }}/release.jks + ANDROID_STORE_PASSWORD: ${{ secrets.ANDROID_STORE_PASSWORD }} + ANDROID_KEY_ALIAS: ${{ secrets.ANDROID_KEY_ALIAS }} + ANDROID_KEY_PASSWORD: ${{ secrets.ANDROID_KEY_PASSWORD }} run: fastforge package --platform android --targets apk - name: Upload Android artifact diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts index 0493096..1aa5bcf 100644 --- a/android/app/build.gradle.kts +++ b/android/app/build.gradle.kts @@ -33,9 +33,25 @@ android { versionName = flutter.versionName } + val keystorePath = System.getenv("KEYSTORE_PATH") + if (keystorePath != null) { + signingConfigs { + create("release") { + storeFile = file(keystorePath) + storePassword = System.getenv("ANDROID_STORE_PASSWORD") ?: "" + keyAlias = System.getenv("ANDROID_KEY_ALIAS") ?: "" + keyPassword = System.getenv("ANDROID_KEY_PASSWORD") ?: "" + } + } + } + buildTypes { release { - signingConfig = signingConfigs.getByName("debug") + signingConfig = if (keystorePath != null) { + signingConfigs.getByName("release") + } else { + signingConfigs.getByName("debug") + } } } }