diff options
| author | Albin <albin@mullvad.net> | 2024-01-17 09:38:30 +0100 |
|---|---|---|
| committer | Albin <albin@mullvad.net> | 2024-01-18 17:12:06 +0100 |
| commit | 2d1936ed2d9ff861c431a97ced0e1827da95292d (patch) | |
| tree | e581ff620eb3a9dd4266d178dacd0b5a56cb0afc | |
| parent | 37510634404d59295d1b2cfebd742973d9cfa20b (diff) | |
| download | mullvadvpn-2d1936ed2d9ff861c431a97ced0e1827da95292d.tar.xz mullvadvpn-2d1936ed2d9ff861c431a97ced0e1827da95292d.zip | |
Add flavor support to e2e and mockapi tests
| -rw-r--r-- | android/buildSrc/src/main/kotlin/BuildVariants.kt | 6 | ||||
| -rw-r--r-- | android/test/e2e/build.gradle.kts | 42 | ||||
| -rw-r--r-- | android/test/mockapi/build.gradle.kts | 7 |
3 files changed, 51 insertions, 4 deletions
diff --git a/android/buildSrc/src/main/kotlin/BuildVariants.kt b/android/buildSrc/src/main/kotlin/BuildVariants.kt index c3ad7c6e76..4595cf5b9d 100644 --- a/android/buildSrc/src/main/kotlin/BuildVariants.kt +++ b/android/buildSrc/src/main/kotlin/BuildVariants.kt @@ -46,3 +46,9 @@ val enabledAppVariantTriples = Triple(PLAY, STAGEMOLE, DEBUG), Triple(PLAY, STAGEMOLE, RELEASE) ) + +val enabledE2eVariantTriples = + listOf( + Triple(OSS, PROD, DEBUG), + Triple(PLAY, STAGEMOLE, DEBUG) + ) diff --git a/android/test/e2e/build.gradle.kts b/android/test/e2e/build.gradle.kts index 946e8effa9..8440967aa9 100644 --- a/android/test/e2e/build.gradle.kts +++ b/android/test/e2e/build.gradle.kts @@ -1,5 +1,6 @@ import com.android.build.gradle.internal.cxx.configure.gradleLocalProperties import java.util.Properties +import org.gradle.configurationcache.extensions.capitalized plugins { id(Dependencies.Plugin.androidTestId) @@ -19,9 +20,6 @@ android { "de.mannodermaus.junit5.AndroidJUnit5Builder" targetProjectPath = ":app" - missingDimensionStrategy(FlavorDimensions.BILLING, Flavors.OSS) - missingDimensionStrategy(FlavorDimensions.INFRASTRUCTURE, Flavors.PROD) - fun Properties.addRequiredPropertyAsBuildConfigField(name: String) { val value = getProperty(name) ?: throw GradleException("Missing property: $name") buildConfigField(type = "String", name = name, value = "\"$value\"") @@ -29,7 +27,6 @@ android { Properties().apply { load(project.file("e2e.properties").inputStream()) - addRequiredPropertyAsBuildConfigField("API_BASE_URL") addRequiredPropertyAsBuildConfigField("API_VERSION") } @@ -51,6 +48,30 @@ android { } } + flavorDimensions += FlavorDimensions.BILLING + flavorDimensions += FlavorDimensions.INFRASTRUCTURE + + productFlavors { + create(Flavors.OSS) { dimension = FlavorDimensions.BILLING } + create(Flavors.PLAY) { dimension = FlavorDimensions.BILLING } + create(Flavors.PROD) { + dimension = FlavorDimensions.INFRASTRUCTURE + buildConfigField( + type = "String", + name = "INFRASTRUCTURE_BASE_DOMAIN", + value = "\"mullvad.net\"" + ) + } + create(Flavors.STAGEMOLE) { + dimension = FlavorDimensions.INFRASTRUCTURE + buildConfigField( + type = "String", + name = "INFRASTRUCTURE_BASE_DOMAIN", + value = "\"stagemole.eu\"" + ) + } + } + testOptions { execution = "ANDROIDX_TEST_ORCHESTRATOR" } compileOptions { @@ -78,6 +99,19 @@ android { } } +androidComponents { + beforeVariants { variantBuilder -> + variantBuilder.enable = + variantBuilder.let { currentVariant -> + val enabledVariants = + enabledE2eVariantTriples.map { (billing, infra, buildType) -> + billing + infra.capitalized() + buildType.capitalized() + } + enabledVariants.contains(currentVariant.name) + } + } +} + configure<org.owasp.dependencycheck.gradle.extension.DependencyCheckExtension> { // Skip the lintClassPath configuration, which relies on many dependencies that has been flagged // to have CVEs, as it's related to the lint tooling rather than the project's compilation class diff --git a/android/test/mockapi/build.gradle.kts b/android/test/mockapi/build.gradle.kts index 3fea2d5d60..5c88d90d82 100644 --- a/android/test/mockapi/build.gradle.kts +++ b/android/test/mockapi/build.gradle.kts @@ -26,6 +26,13 @@ android { ) } + flavorDimensions += FlavorDimensions.BILLING + + productFlavors { + create(Flavors.OSS) { dimension = FlavorDimensions.BILLING } + create(Flavors.PLAY) { dimension = FlavorDimensions.BILLING } + } + testOptions { execution = "ANDROIDX_TEST_ORCHESTRATOR" } compileOptions { |
