diff options
| author | Albin <albin@mullvad.net> | 2023-04-19 11:03:55 +0200 |
|---|---|---|
| committer | Albin <albin@mullvad.net> | 2023-04-24 16:29:36 +0200 |
| commit | 14336f7be60df5ae5d18f72273e3e09292907775 (patch) | |
| tree | d6d5d8879cdb9cec9ae094892b115310d2b91f19 | |
| parent | 1fbbf6517c9948c53689d2b1847c8adc2aa404ea (diff) | |
| download | mullvadvpn-14336f7be60df5ae5d18f72273e3e09292907775.tar.xz mullvadvpn-14336f7be60df5ae5d18f72273e3e09292907775.zip | |
Add version code/name override option
Adds the option to override version code/name by setting properties
in `local.properties`. For example:
OVERRIDE_VERSION_CODE=123
OVERRIDE_VERSION_NAME=1.2.3
| -rw-r--r-- | android/app/build.gradle.kts | 9 | ||||
| -rw-r--r-- | android/buildSrc/src/main/kotlin/Utils.kt | 28 |
2 files changed, 24 insertions, 13 deletions
diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts index 46b70c0607..d6b59b6a2d 100644 --- a/android/app/build.gradle.kts +++ b/android/app/build.gradle.kts @@ -28,15 +28,16 @@ android { compileSdk = Versions.Android.compileSdkVersion defaultConfig { + val localProperties = gradleLocalProperties(rootProject.projectDir) + applicationId = "net.mullvad.mullvadvpn" minSdk = Versions.Android.minSdkVersion targetSdk = Versions.Android.targetSdkVersion - versionCode = generateVersionCode() - versionName = generateVersionName() + versionCode = generateVersionCode(localProperties) + versionName = generateVersionName(localProperties) testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" - val alwaysShowChangelog = gradleLocalProperties(rootProject.projectDir) - .getProperty("ALWAYS_SHOW_CHANGELOG") ?: "false" + val alwaysShowChangelog = localProperties.getProperty("ALWAYS_SHOW_CHANGELOG") ?: "false" buildConfigField( type = "boolean", name = "ALWAYS_SHOW_CHANGELOG", diff --git a/android/buildSrc/src/main/kotlin/Utils.kt b/android/buildSrc/src/main/kotlin/Utils.kt index 96c44b78c2..a3f3759960 100644 --- a/android/buildSrc/src/main/kotlin/Utils.kt +++ b/android/buildSrc/src/main/kotlin/Utils.kt @@ -1,8 +1,26 @@ import java.io.ByteArrayOutputStream +import java.util.* import org.gradle.api.Project import org.gradle.process.ExecSpec -fun Project.execWithOutput(spec: ExecSpec.() -> Unit) = +fun Project.generateVersionCode(localProperties: Properties): Int { + return localProperties.getProperty("OVERRIDE_VERSION_CODE")?.toIntOrNull() + ?: execVersionCodeCargoCommand() +} + +fun Project.generateVersionName(localProperties: Properties): String { + return localProperties.getProperty("OVERRIDE_VERSION_NAME") ?: execVersionNameCargoCommand() +} + +private fun Project.execVersionCodeCargoCommand() = + execWithOutput { commandLine("cargo", "run", "-q", "--bin", "mullvad-version", "versionCode") } + .toInt() + +private fun Project.execVersionNameCargoCommand() = execWithOutput { + commandLine("cargo", "run", "-q", "--bin", "mullvad-version", "versionName") +} + +private fun Project.execWithOutput(spec: ExecSpec.() -> Unit) = ByteArrayOutputStream().use { outputStream -> exec { this.spec() @@ -10,11 +28,3 @@ fun Project.execWithOutput(spec: ExecSpec.() -> Unit) = } outputStream.toString().trim() } - -fun Project.generateVersionCode() = execWithOutput { - commandLine("cargo", "run", "-q", "--bin", "mullvad-version", "versionCode") -}.toInt() - -fun Project.generateVersionName() = execWithOutput { - commandLine("cargo", "run", "-q", "--bin", "mullvad-version", "versionName") -} |
