summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAlbin <albin@mullvad.net>2023-04-19 11:03:55 +0200
committerAlbin <albin@mullvad.net>2023-04-24 16:29:36 +0200
commit14336f7be60df5ae5d18f72273e3e09292907775 (patch)
treed6d5d8879cdb9cec9ae094892b115310d2b91f19
parent1fbbf6517c9948c53689d2b1847c8adc2aa404ea (diff)
downloadmullvadvpn-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.kts9
-rw-r--r--android/buildSrc/src/main/kotlin/Utils.kt28
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")
-}