fix: make release signing optional for CI debug builds
This commit is contained in:
parent
65bf0de9f7
commit
3a70b6ac2d
|
|
@ -7,39 +7,19 @@ plugins {
|
|||
id("com.google.gms.google-services")
|
||||
}
|
||||
|
||||
// Release signing is intentionally optional during configuration so debug/profile
|
||||
// builds (including GitHub Actions CI) do not require private signing credentials.
|
||||
val keystoreProperties = Properties()
|
||||
val keystorePropertiesFile = rootProject.file("key.properties")
|
||||
|
||||
if (!keystorePropertiesFile.exists()) {
|
||||
throw GradleException(
|
||||
"Missing android/key.properties. " +
|
||||
"Create it from android/key.properties.template."
|
||||
)
|
||||
}
|
||||
|
||||
if (keystorePropertiesFile.exists()) {
|
||||
FileInputStream(keystorePropertiesFile).use {
|
||||
keystoreProperties.load(it)
|
||||
}
|
||||
|
||||
fun requiredKeystoreProperty(name: String): String {
|
||||
val value = keystoreProperties.getProperty(name)?.trim()
|
||||
|
||||
println("MotorSignal signing property [$name]: ${if (value.isNullOrEmpty()) "<MISSING>" else "<PRESENT>"}")
|
||||
|
||||
if (value.isNullOrEmpty()) {
|
||||
println("Properties actually loaded by Gradle: ${keystoreProperties.keys}")
|
||||
throw GradleException(
|
||||
"Missing $name in android/key.properties"
|
||||
)
|
||||
}
|
||||
|
||||
return value
|
||||
}
|
||||
|
||||
val releaseStorePassword = requiredKeystoreProperty("storePassword")
|
||||
val releaseKeyPassword = requiredKeystoreProperty("keyPassword")
|
||||
val releaseKeyAlias = requiredKeystoreProperty("keyAlias")
|
||||
val releaseStoreFile = requiredKeystoreProperty("storeFile")
|
||||
fun optionalKeystoreProperty(name: String): String? =
|
||||
keystoreProperties.getProperty(name)?.trim()?.takeIf { it.isNotEmpty() }
|
||||
|
||||
android {
|
||||
namespace = "app.motorsignal.motorcycle"
|
||||
|
|
@ -60,6 +40,16 @@ android {
|
|||
}
|
||||
|
||||
signingConfigs {
|
||||
val releaseStorePassword = optionalKeystoreProperty("storePassword")
|
||||
val releaseKeyPassword = optionalKeystoreProperty("keyPassword")
|
||||
val releaseKeyAlias = optionalKeystoreProperty("keyAlias")
|
||||
val releaseStoreFile = optionalKeystoreProperty("storeFile")
|
||||
|
||||
if (releaseStorePassword != null &&
|
||||
releaseKeyPassword != null &&
|
||||
releaseKeyAlias != null &&
|
||||
releaseStoreFile != null
|
||||
) {
|
||||
create("release") {
|
||||
keyAlias = releaseKeyAlias
|
||||
keyPassword = releaseKeyPassword
|
||||
|
|
@ -68,10 +58,17 @@ android {
|
|||
storeType = "PKCS12"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
release {
|
||||
signingConfig = signingConfigs.getByName("release")
|
||||
val releaseSigningConfig = signingConfigs.findByName("release")
|
||||
?: throw GradleException(
|
||||
"Release signing is not configured. " +
|
||||
"Provide android/key.properties with storePassword, keyPassword, " +
|
||||
"keyAlias, and storeFile for a signed release build."
|
||||
)
|
||||
signingConfig = releaseSigningConfig
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue