Pass keystore data via env

This commit is contained in:
franzap
2026-04-03 13:34:59 -03:00
parent 4781287e96
commit aaf2625a4a
+13 -17
View File
@@ -42,27 +42,23 @@ android {
}
// Release signing is optional:
// - With a complete key.properties -> signed (for Play/GitHub releases)
// - Without key.properties (or incomplete) -> unsigned (for reproducible builds / F-Droid)
val releaseSigningConfig = if (keystorePropertiesFile.exists()) {
val alias = keystoreProperties.getProperty("keyAlias")?.trim().orEmpty()
val keyPass = keystoreProperties.getProperty("keyPassword")?.trim().orEmpty()
val storePath = keystoreProperties.getProperty("storeFile")?.trim().orEmpty()
val storePass = keystoreProperties.getProperty("storePassword")?.trim().orEmpty()
// - With ZAPSTORE_KEY_PATH + ZAPSTORE_KEY_PASSWORD env vars -> signed
// - Without env vars -> unsigned (for reproducible builds / F-Droid)
val envKeyPassword = System.getenv("ZAPSTORE_KEY_PASSWORD")?.trim()
val envKeyPath = System.getenv("ZAPSTORE_KEY_PATH")?.trim()
val store = storePath.takeIf { it.isNotBlank() }?.let { file(it) }
val isComplete = alias.isNotBlank() && keyPass.isNotBlank() && store != null && store.exists() && storePass.isNotBlank()
val envKeyAlias = System.getenv("ZAPSTORE_KEY_ALIAS")?.trim()
if (isComplete) {
val releaseSigningConfig = if (envKeyPassword != null && envKeyPath != null && envKeyAlias != null) {
val store = file(envKeyPath)
if (!store.exists()) {
error("ZAPSTORE_KEY_PATH points to a file that does not exist: $envKeyPath")
}
signingConfigs.create("release") {
storeFile = store
storePassword = storePass
keyAlias = alias
keyPassword = keyPass
}
} else {
logger.warn("key.properties found but incomplete. Building unsigned release APK.")
null
storePassword = envKeyPassword
keyAlias = envKeyAlias
keyPassword = envKeyPassword
}
} else {
null