From aa4a234da4bd586673fe3868b1bc403630393b46 Mon Sep 17 00:00:00 2001 From: dkhawk <107309+dkhawk@users.noreply.github.com> Date: Tue, 27 Jan 2026 11:42:32 -0700 Subject: [PATCH] fix: Relax secrets.properties enforcement for CI and Release builds --- .../ApiDemos/java-app/build.gradle.kts | 18 +++++++++++++----- .../ApiDemos/kotlin-app/build.gradle.kts | 17 +++++++++++++++-- Maps3DSamples/advanced/app/build.gradle.kts | 10 ++++++++-- 3 files changed, 36 insertions(+), 9 deletions(-) diff --git a/Maps3DSamples/ApiDemos/java-app/build.gradle.kts b/Maps3DSamples/ApiDemos/java-app/build.gradle.kts index a8989c5..0fdc9f9 100644 --- a/Maps3DSamples/ApiDemos/java-app/build.gradle.kts +++ b/Maps3DSamples/ApiDemos/java-app/build.gradle.kts @@ -19,7 +19,9 @@ import java.io.File // Check for secrets.properties file before proceeding with build tasks. val secretsFile = rootProject.file("secrets.properties") -if (!secretsFile.exists()) { +val isCI = System.getenv("CI")?.toBoolean() ?: false + +if (!secretsFile.exists() && !isCI) { val requestedTasks = gradle.startParameter.taskNames if (requestedTasks.isEmpty()) { // It's likely an IDE sync if no tasks are specified, so just issue a warning. @@ -39,7 +41,11 @@ if (!secretsFile.exists()) { } } - if (isBuildTask && !isTestTask) { + val isDebugTask = requestedTasks.any { task -> + task.contains("Debug", ignoreCase = true) + } + + if (isBuildTask && !isTestTask && isDebugTask) { val defaultsFile = rootProject.file("local.defaults.properties") val requiredKeysMessage = if (defaultsFile.exists()) { defaultsFile.readText() @@ -108,17 +114,19 @@ dependencies { implementation(libs.androidx.ui.graphics) implementation(libs.androidx.ui.tooling.preview) implementation(libs.androidx.material3) + implementation(libs.play.services.base) + implementation(project(":common")) + testImplementation(libs.junit) + androidTestImplementation(libs.androidx.junit) androidTestImplementation(project(":common")) androidTestImplementation(libs.androidx.espresso.core) androidTestImplementation(platform(libs.androidx.compose.bom)) androidTestImplementation(libs.androidx.ui.test.junit4) + androidTestImplementation(libs.truth) debugImplementation(libs.androidx.ui.tooling) debugImplementation(libs.androidx.ui.test.manifest) - - implementation(libs.play.services.base) - implementation(project(":common")) } secrets { diff --git a/Maps3DSamples/ApiDemos/kotlin-app/build.gradle.kts b/Maps3DSamples/ApiDemos/kotlin-app/build.gradle.kts index ac36d7e..67c1f49 100644 --- a/Maps3DSamples/ApiDemos/kotlin-app/build.gradle.kts +++ b/Maps3DSamples/ApiDemos/kotlin-app/build.gradle.kts @@ -19,7 +19,9 @@ import java.io.File // Check for secrets.properties file before proceeding with build tasks. val secretsFile = rootProject.file("secrets.properties") -if (!secretsFile.exists()) { +val isCI = System.getenv("CI")?.toBoolean() ?: false + +if (!secretsFile.exists() && !isCI) { val requestedTasks = gradle.startParameter.taskNames if (requestedTasks.isEmpty()) { // It's likely an IDE sync if no tasks are specified, so just issue a warning. @@ -39,7 +41,11 @@ if (!secretsFile.exists()) { } } - if (isBuildTask && !isTestTask) { + val isDebugTask = requestedTasks.any { task -> + task.contains("Debug", ignoreCase = true) + } + + if (isBuildTask && !isTestTask && isDebugTask) { val defaultsFile = rootProject.file("local.defaults.properties") val requiredKeysMessage = if (defaultsFile.exists()) { defaultsFile.readText() @@ -139,3 +145,10 @@ secrets { // checked in version control. defaultPropertiesFileName = "local.defaults.properties" } + +tasks.register("installAndLaunch") { + description = "Installs and launches the demo app." + group = "install" + dependsOn("installDebug") + commandLine("adb", "shell", "am", "start", "-n", "com.example.maps3dkotlin/.mainactivity.MainActivity") +} diff --git a/Maps3DSamples/advanced/app/build.gradle.kts b/Maps3DSamples/advanced/app/build.gradle.kts index 54b12c7..6986743 100644 --- a/Maps3DSamples/advanced/app/build.gradle.kts +++ b/Maps3DSamples/advanced/app/build.gradle.kts @@ -19,7 +19,9 @@ import java.io.File // Check for secrets.properties file before proceeding with build tasks. val secretsFile = rootProject.file("secrets.properties") -if (!secretsFile.exists()) { +val isCI = System.getenv("CI")?.toBoolean() ?: false + +if (!secretsFile.exists() && !isCI) { val requestedTasks = gradle.startParameter.taskNames if (requestedTasks.isEmpty()) { // It's likely an IDE sync if no tasks are specified, so just issue a warning. @@ -39,7 +41,11 @@ if (!secretsFile.exists()) { } } - if (isBuildTask && !isTestTask) { + val isDebugTask = requestedTasks.any { task -> + task.contains("Debug", ignoreCase = true) + } + + if (isBuildTask && !isTestTask && isDebugTask) { val defaultsFile = rootProject.file("local.defaults.properties") val requiredKeysMessage = if (defaultsFile.exists()) { defaultsFile.readText()