Skip to content

Commit 21b7ee3

Browse files
committed
feat: Add secrets plugin check to ApiDemos and Advanced samples
1 parent e1cf8ef commit 21b7ee3

3 files changed

Lines changed: 120 additions & 0 deletions

File tree

Maps3DSamples/ApiDemos/java-app/build.gradle.kts

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,43 @@
1+
import org.gradle.api.GradleException
2+
import java.io.File
3+
4+
// Check for secrets.properties file before proceeding with build tasks.
5+
val secretsFile = rootProject.file("secrets.properties")
6+
if (!secretsFile.exists()) {
7+
val requestedTasks = gradle.startParameter.taskNames
8+
if (requestedTasks.isEmpty()) {
9+
// It's likely an IDE sync if no tasks are specified, so just issue a warning.
10+
println("Warning: secrets.properties not found. Gradle sync may succeed, but building/running the app will fail.")
11+
} else {
12+
val buildTaskKeywords = listOf("build", "install", "assemble")
13+
val isBuildTask = requestedTasks.any { task ->
14+
buildTaskKeywords.any { keyword ->
15+
task.contains(keyword, ignoreCase = true)
16+
}
17+
}
18+
19+
val testTaskKeywords = listOf("test", "report", "lint")
20+
val isTestTask = requestedTasks.any { task ->
21+
testTaskKeywords.any { keyword ->
22+
task.contains(keyword, ignoreCase = true)
23+
}
24+
}
25+
26+
if (isBuildTask && !isTestTask) {
27+
val defaultsFile = rootProject.file("local.defaults.properties")
28+
val requiredKeysMessage = if (defaultsFile.exists()) {
29+
defaultsFile.readText()
30+
} else {
31+
"MAPS_API_KEY=<YOUR_API_KEY>"
32+
}
33+
34+
throw GradleException("secrets.properties file not found. Please create a 'secrets.properties' file in the root project directory with the following content:\n" +
35+
"\n" +
36+
requiredKeysMessage)
37+
}
38+
}
39+
}
40+
141
/*
242
* Copyright 2025 Google LLC
343
*

Maps3DSamples/ApiDemos/kotlin-app/build.gradle.kts

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,43 @@
1+
import org.gradle.api.GradleException
2+
import java.io.File
3+
4+
// Check for secrets.properties file before proceeding with build tasks.
5+
val secretsFile = rootProject.file("secrets.properties")
6+
if (!secretsFile.exists()) {
7+
val requestedTasks = gradle.startParameter.taskNames
8+
if (requestedTasks.isEmpty()) {
9+
// It's likely an IDE sync if no tasks are specified, so just issue a warning.
10+
println("Warning: secrets.properties not found. Gradle sync may succeed, but building/running the app will fail.")
11+
} else {
12+
val buildTaskKeywords = listOf("build", "install", "assemble")
13+
val isBuildTask = requestedTasks.any { task ->
14+
buildTaskKeywords.any { keyword ->
15+
task.contains(keyword, ignoreCase = true)
16+
}
17+
}
18+
19+
val testTaskKeywords = listOf("test", "report", "lint")
20+
val isTestTask = requestedTasks.any { task ->
21+
testTaskKeywords.any { keyword ->
22+
task.contains(keyword, ignoreCase = true)
23+
}
24+
}
25+
26+
if (isBuildTask && !isTestTask) {
27+
val defaultsFile = rootProject.file("local.defaults.properties")
28+
val requiredKeysMessage = if (defaultsFile.exists()) {
29+
defaultsFile.readText()
30+
} else {
31+
"MAPS_API_KEY=<YOUR_API_KEY>"
32+
}
33+
34+
throw GradleException("secrets.properties file not found. Please create a 'secrets.properties' file in the root project directory with the following content:\n" +
35+
"\n" +
36+
requiredKeysMessage)
37+
}
38+
}
39+
}
40+
141
/*
242
* Copyright 2025 Google LLC
343
*

Maps3DSamples/advanced/app/build.gradle.kts

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,43 @@
1+
import org.gradle.api.GradleException
2+
import java.io.File
3+
4+
// Check for secrets.properties file before proceeding with build tasks.
5+
val secretsFile = rootProject.file("secrets.properties")
6+
if (!secretsFile.exists()) {
7+
val requestedTasks = gradle.startParameter.taskNames
8+
if (requestedTasks.isEmpty()) {
9+
// It's likely an IDE sync if no tasks are specified, so just issue a warning.
10+
println("Warning: secrets.properties not found. Gradle sync may succeed, but building/running the app will fail.")
11+
} else {
12+
val buildTaskKeywords = listOf("build", "install", "assemble")
13+
val isBuildTask = requestedTasks.any { task ->
14+
buildTaskKeywords.any { keyword ->
15+
task.contains(keyword, ignoreCase = true)
16+
}
17+
}
18+
19+
val testTaskKeywords = listOf("test", "report", "lint")
20+
val isTestTask = requestedTasks.any { task ->
21+
testTaskKeywords.any { keyword ->
22+
task.contains(keyword, ignoreCase = true)
23+
}
24+
}
25+
26+
if (isBuildTask && !isTestTask) {
27+
val defaultsFile = rootProject.file("local.defaults.properties")
28+
val requiredKeysMessage = if (defaultsFile.exists()) {
29+
defaultsFile.readText()
30+
} else {
31+
"MAPS_API_KEY=<YOUR_API_KEY>"
32+
}
33+
34+
throw GradleException("secrets.properties file not found. Please create a 'secrets.properties' file in the root project directory with the following content:\n" +
35+
"\n" +
36+
requiredKeysMessage)
37+
}
38+
}
39+
}
40+
141
/*
242
* Copyright 2025 Google LLC
343
*

0 commit comments

Comments
 (0)