fix(#63): require keystore env variables for release builds (#176)

* fix(#63): require keystore env variables for release builds

* fix(ci): conditionalize signing requirement to release tasks only
This commit is contained in:
M57 authored and GitHub committed 2026-06-20 22:47:46 +03:00
1 parent 64a047f095
commit a315c9d3d4
2 files changed
+27 -5

No files matched your search

+1 -1
View File
@@ -121,7 +121,7 @@ The debug APK will be at `app/build/outputs/apk/debug/app-debug.apk`.
./gradlew assembleRelease -PversionName="1.2.0" -PversionCode="120"
```
> **Note:** Release builds use debug signing keys by default. For Play Store distribution, configure a proper signing config.
> **Note:** Release builds require proper signing configuration. Ensure the environment variables `KEYSTORE_PATH`, `KEYSTORE_PASSWORD`, `KEY_ALIAS`, and `KEY_PASSWORD` are set before building.
### Install
+26 -4
View File
@@ -29,10 +29,32 @@ android {
signingConfigs {
create("release") {
storeFile = file(System.getenv("KEYSTORE_PATH") ?: "hermes-control-release.keystore.jks")
storePassword = System.getenv("KEYSTORE_PASSWORD") ?: "hermes_release"
keyAlias = System.getenv("KEY_ALIAS") ?: "hermes-control-release"
keyPassword = System.getenv("KEY_PASSWORD") ?: "hermes_release"
val isReleaseBuild = gradle.startParameter.taskNames.any { name ->
name.contains("Release", ignoreCase = true) || name == "build"
}
if (isReleaseBuild) {
val storePath = System.getenv("KEYSTORE_PATH")
val storePass = System.getenv("KEYSTORE_PASSWORD")
val alias = System.getenv("KEY_ALIAS")
val keyPass = System.getenv("KEY_PASSWORD")
require(!storePath.isNullOrEmpty()) { "KEYSTORE_PATH environment variable is not set" }
require(!storePass.isNullOrEmpty()) { "KEYSTORE_PASSWORD environment variable is not set" }
require(!alias.isNullOrEmpty()) { "KEY_ALIAS environment variable is not set" }
require(!keyPass.isNullOrEmpty()) { "KEY_PASSWORD environment variable is not set" }
storeFile = file(storePath)
storePassword = storePass
keyAlias = alias
keyPassword = keyPass
} else {
// Dummy values for evaluation configuration during non-release builds
storeFile = file("dummy.keystore")
storePassword = "dummy"
keyAlias = "dummy"
keyPassword = "dummy"
}
}
}