Skip to content

Commit 96492b1

Browse files
committed
Modified GH options
1 parent 03699fc commit 96492b1

3 files changed

Lines changed: 36 additions & 6 deletions

File tree

.github/workflows/android-deploy.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,17 @@ jobs:
2424
with:
2525
flutter-version: '3.35.4'
2626

27+
- name: Prepare CI keystore from GitHub Secrets
28+
if: ${{ secrets.KEYSTORE_BASE64 != '' }}
29+
run: |
30+
echo "Decoding GitHub secret keystore to move/ci_keystore.jks"
31+
echo "${{ secrets.KEYSTORE_BASE64 }}" | base64 --decode > move/ci_keystore.jks
32+
echo "Exporting signing env vars"
33+
if [ -n "${{ secrets.KEY_ALIAS }}" ]; then echo "KEY_ALIAS=${{ secrets.KEY_ALIAS }}" >> $GITHUB_ENV; fi
34+
if [ -n "${{ secrets.KEY_PASSWORD }}" ]; then echo "KEY_PASSWORD=${{ secrets.KEY_PASSWORD }}" >> $GITHUB_ENV; fi
35+
if [ -n "${{ secrets.STORE_PASSWORD }}" ]; then echo "STORE_PASSWORD=${{ secrets.STORE_PASSWORD }}" >> $GITHUB_ENV; fi
36+
37+
2738
- name: Cache pub
2839
uses: actions/cache@v4
2940
with:

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
move/android/app/local.properties
22
.github/copilot-instructions.md
3+
keystore.base64

move/android/app/build.gradle.kts

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,19 +43,37 @@ android {
4343

4444
signingConfigs {
4545
create("release") {
46-
keyAlias = keystoreProperties["keyAlias"] as String
47-
keyPassword = keystoreProperties["keyPassword"] as String
48-
storeFile = keystoreProperties["storeFile"]?.let { file(it) }
49-
storePassword = keystoreProperties["storePassword"] as String
46+
if (keystorePropertiesFile.exists()) {
47+
// use Properties.getProperty which returns null if missing (safer than cast)
48+
keyAlias = keystoreProperties.getProperty("keyAlias")
49+
keyPassword = keystoreProperties.getProperty("keyPassword")
50+
keystoreProperties.getProperty("storeFile")?.let { storeFile = file(it) }
51+
storePassword = keystoreProperties.getProperty("storePassword")
52+
} else if (System.getenv("KEYSTORE_BASE64") != null) {
53+
// Decode base64 keystore provided via environment (CI secret)
54+
val keystoreBytes = java.util.Base64.getDecoder().decode(System.getenv("KEYSTORE_BASE64"))
55+
val keystoreOut = rootProject.file("ci_keystore.jks")
56+
keystoreOut.writeBytes(keystoreBytes)
57+
storeFile = keystoreOut
58+
keyAlias = System.getenv("KEY_ALIAS")
59+
keyPassword = System.getenv("KEY_PASSWORD")
60+
storePassword = System.getenv("STORE_PASSWORD")
61+
} else {
62+
// Leave release signing empty so CI can build without a keystore present
63+
}
5064
}
5165
}
5266
buildTypes {
5367
release {
5468
// TODO: Add your own signing config for the release build.
5569
// Signing with the debug keys for now,
5670
// so `flutter run --release` works.
57-
signingConfig = signingConfigs.getByName("debug")
58-
signingConfig = signingConfigs.getByName("release")
71+
// Use release signing when key.properties exists or CI keystore env var is set
72+
if (keystorePropertiesFile.exists() || System.getenv("KEYSTORE_BASE64") != null) {
73+
signingConfig = signingConfigs.getByName("release")
74+
} else {
75+
signingConfig = signingConfigs.getByName("debug")
76+
}
5977
}
6078
}
6179

0 commit comments

Comments
 (0)