summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAlbin <albin@mullvad.net>2022-01-13 11:36:32 +0100
committerAlbin <albin@mullvad.net>2022-01-13 12:37:32 +0100
commit2e5191972db33fee0762369932093b15976c3464 (patch)
tree4e3a0e681274b68b8e2b1ed0db95a6a8b8263508
parent251f799a0d557e3753af4b00b505f1385dccfdf7 (diff)
downloadmullvadvpn-2e5191972db33fee0762369932093b15976c3464.tar.xz
mullvadvpn-2e5191972db33fee0762369932093b15976c3464.zip
Add Android version check plugin
-rw-r--r--android/build.gradle.kts15
-rw-r--r--android/buildSrc/src/main/kotlin/Dependencies.kt1
-rw-r--r--android/buildSrc/src/main/kotlin/Extensions.kt9
-rw-r--r--android/buildSrc/src/main/kotlin/Versions.kt1
4 files changed, 26 insertions, 0 deletions
diff --git a/android/build.gradle.kts b/android/build.gradle.kts
index 3fbe17a34e..55dcfcb33f 100644
--- a/android/build.gradle.kts
+++ b/android/build.gradle.kts
@@ -1,5 +1,8 @@
+import com.github.benmanes.gradle.versions.updates.DependencyUpdatesTask
+
plugins {
id(Dependencies.Plugin.dependencyCheckId) version Versions.Plugin.dependencyCheck apply false
+ id(Dependencies.Plugin.gradleVersionsId) version Versions.Plugin.gradleVersions
}
buildscript {
@@ -30,6 +33,18 @@ allprojects {
}
}
+tasks.withType<DependencyUpdatesTask> {
+ resolutionStrategy {
+ componentSelection {
+ all {
+ if (candidate.version.isNonStableVersion()) {
+ reject("Non-stable version.")
+ }
+ }
+ }
+ }
+}
+
tasks.register("clean", Delete::class) {
delete(rootProject.buildDir)
}
diff --git a/android/buildSrc/src/main/kotlin/Dependencies.kt b/android/buildSrc/src/main/kotlin/Dependencies.kt
index 218fc0572d..c11afd0882 100644
--- a/android/buildSrc/src/main/kotlin/Dependencies.kt
+++ b/android/buildSrc/src/main/kotlin/Dependencies.kt
@@ -66,5 +66,6 @@ object Dependencies {
const val dependencyCheck =
"org.owasp:dependency-check-gradle:${Versions.Plugin.dependencyCheck}"
const val dependencyCheckId = "org.owasp.dependencycheck"
+ const val gradleVersionsId = "com.github.ben-manes.versions"
}
}
diff --git a/android/buildSrc/src/main/kotlin/Extensions.kt b/android/buildSrc/src/main/kotlin/Extensions.kt
new file mode 100644
index 0000000000..3603330d3f
--- /dev/null
+++ b/android/buildSrc/src/main/kotlin/Extensions.kt
@@ -0,0 +1,9 @@
+fun String.isNonStableVersion(): Boolean {
+ val nonStableQualifiers = listOf("alpha", "beta", "rc")
+
+ val isNonStable = nonStableQualifiers
+ .map { qualifier -> Regex("(?i).*[.-]$qualifier[.\\d-+]*") }
+ .any { it.matches(this) }
+
+ return isNonStable
+}
diff --git a/android/buildSrc/src/main/kotlin/Versions.kt b/android/buildSrc/src/main/kotlin/Versions.kt
index 496e36f254..c2fec7a42e 100644
--- a/android/buildSrc/src/main/kotlin/Versions.kt
+++ b/android/buildSrc/src/main/kotlin/Versions.kt
@@ -33,5 +33,6 @@ object Versions {
const val playPublisher = "2.7.5"
const val kotlin = "1.4.31"
const val dependencyCheck = "6.5.0.1"
+ const val gradleVersions = "0.41.0"
}
}