diff --git a/app/build.gradle.kts b/app/build.gradle.kts index a297ea7702..64bc93cb6f 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -21,6 +21,7 @@ import extension.allFeaturesImpl import extension.allLibrariesImpl import extension.allServicesImpl import extension.buildConfigFieldStr +import extension.environmentOrGradleValue import extension.locales import extension.setupDependencyInjection import extension.testCommonDependencies @@ -88,13 +89,14 @@ android { storePassword = "android" } register("nightly") { - keyAlias = System.getenv("ELEMENT_ANDROID_NIGHTLY_KEYID") - ?: project.property("signing.element.nightly.keyId") as? String? - keyPassword = System.getenv("ELEMENT_ANDROID_NIGHTLY_KEYPASSWORD") - ?: project.property("signing.element.nightly.keyPassword") as? String? - storeFile = file("./signature/nightly.keystore") - storePassword = System.getenv("ELEMENT_ANDROID_NIGHTLY_STOREPASSWORD") - ?: project.property("signing.element.nightly.storePassword") as? String? + keyAlias = environmentOrGradleValue("ELEMENT_ANDROID_NIGHTLY_KEYID", "signing.element.nightly.keyId") + keyPassword = environmentOrGradleValue("ELEMENT_ANDROID_NIGHTLY_KEYPASSWORD", "signing.element.nightly.keyPassword") + storeFile = file( + environmentOrGradleValue("ELEMENT_ANDROID_NIGHTLY_STOREFILE", "signing.element.nightly.storeFile") + ?.ifBlank { null } + ?: "./signature/nightly.keystore" + ) + storePassword = environmentOrGradleValue("ELEMENT_ANDROID_NIGHTLY_STOREPASSWORD", "signing.element.nightly.storePassword") } } diff --git a/docs/nightly_build.md b/docs/nightly_build.md index 3a3345d662..76fdfeb0ef 100644 --- a/docs/nightly_build.md +++ b/docs/nightly_build.md @@ -27,6 +27,7 @@ Click on this link and follow the instruction: [https://appdistribution.firebase Nightly build can be built manually from your computer. You will need to retrieved some secrets from Passbolt and add them to your file `~/.gradle/gradle.properties`: ``` +signing.element.nightly.storeFile=LOCATION_OF_THE_KEYSTORE_FILE signing.element.nightly.storePassword=VALUE_FROM_PASSBOLT signing.element.nightly.keyId=VALUE_FROM_PASSBOLT signing.element.nightly.keyPassword=VALUE_FROM_PASSBOLT diff --git a/gradle.properties b/gradle.properties index c263d7b266..26ebbabf4d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -39,6 +39,7 @@ org.gradle.configuration-cache.parallel=true kotlin.incremental=true # Dummy values for signing secrets / nightly +signing.element.nightly.storeFile= signing.element.nightly.storePassword=Secret signing.element.nightly.keyId=Secret signing.element.nightly.keyPassword=Secret diff --git a/plugins/src/main/kotlin/extension/CommonExtension.kt b/plugins/src/main/kotlin/extension/CommonExtension.kt index 1f24473f8e..ad6badb613 100644 --- a/plugins/src/main/kotlin/extension/CommonExtension.kt +++ b/plugins/src/main/kotlin/extension/CommonExtension.kt @@ -117,3 +117,12 @@ fun Project.defaultLintOptions(lint: Lint) = lint.apply { ignoreTestFixturesSources = true checkGeneratedSources = false } + +fun Project.environmentOrGradleValue( + environmentVariableName: String, + gradlePropertyName: String, + defaultValue: String? = null, +): String? = providers.environmentVariable(environmentVariableName) + .orElse(providers.gradleProperty(gradlePropertyName)) + .orNull + ?: defaultValue