Skip to content

Commit f5acddf

Browse files
committed
work
1 parent 8c86889 commit f5acddf

File tree

2 files changed

+27
-15
lines changed

2 files changed

+27
-15
lines changed

firebase-dataconnect/ci/build.gradle.kts

Lines changed: 26 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,44 +12,56 @@ spotless {
1212

1313
abstract class InstallFirebaseToolsTask : DefaultTask() {
1414

15-
@get:Input abstract val firebaseToolsVersion: Property<String>
15+
@get:Input abstract val version: Property<String>
1616

17-
@get:OutputDirectory abstract val installDir: DirectoryProperty
17+
@get:OutputDirectory abstract val destDir: DirectoryProperty
1818

1919
@get:Inject abstract val execOperations: ExecOperations
2020

2121
@TaskAction
2222
fun execute() {
23-
val installDir: File = installDir.get().asFile
24-
val firebaseToolsVersion: String = firebaseToolsVersion.get()
23+
val destDir: File = destDir.get().asFile
24+
val version: String = version.get()
2525

26-
logger.lifecycle("Creating directory: $installDir")
27-
installDir.mkdirs()
28-
29-
val packageJsonFile = File(installDir, "package.json")
26+
val packageJsonFile = File(destDir, "package.json")
3027
logger.lifecycle("Creating $packageJsonFile")
3128
packageJsonFile.writeText("{}")
3229

3330
execOperations.exec {
34-
workingDir = installDir
31+
workingDir = destDir
3532
setCommandLine(
3633
"npm",
3734
"install",
3835
"--fund=false",
3936
"--audit=false",
4037
"--save",
4138
"--save-exact",
42-
"firebase-tools@$firebaseToolsVersion",
39+
"firebase-tools@$version",
4340
)
4441
logger.lifecycle("Running command in directory $workingDir: ${commandLine.joinToString(" ")}")
4542
}
4643
}
4744
}
4845

49-
tasks.register<InstallFirebaseToolsTask>("installFirebaseTools") {
50-
val projectDirectory = layout.projectDirectory
51-
installDir.set(providers.gradleProperty("installDir").map { projectDirectory.dir(it) })
52-
firebaseToolsVersion.set(providers.gradleProperty("firebaseToolsVersion"))
46+
val installFirebaseToolsTask = tasks.register<InstallFirebaseToolsTask>("installFirebaseTools") {
47+
group = "Data Connect CI"
48+
description = "Install the firebase-tools npm package"
49+
destDir.set(layout.buildDirectory.dir("firebase-tools"))
50+
version.set(providers.requiredGradleProperty("firebaseToolsVersion"))
5351
}
5452

53+
fun ProviderFactory.requiredGradleProperty(propertyName: String) =
54+
gradleProperty(propertyName)
55+
.orElse(
56+
providers.provider<Nothing> {
57+
throw RequiredPropertyMissing(
58+
"zzyzx=${project.property(propertyName)} Project property \"$propertyName\" was not set, " +
59+
"but is required. " +
60+
"Consider setting this project property by specifying " +
61+
"-P$propertyName=<value> on the Gradle command line, " +
62+
"or by setting the ORG_GRADLE_PROJECT_installFirebaseTools environment variable."
63+
)
64+
}
65+
)
66+
5567
class RequiredPropertyMissing(message: String) : Exception(message)

firebase-dataconnect/ci/gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ org.gradle.caching=true
99
org.gradle.configuration-cache=true
1010

1111
# Enables incubating configuration-on-demand, where Gradle will attempt to configure only necessary projects.
12-
org.gradle.configureondemand=true
12+
org.gradle.configureondemand=false
1313

1414
# When set to quiet, warn, info, or debug, Gradle will use this log level. The values are not case-sensitive.
1515
# Use "info" since this script uses a lot of info logging for normal output.

0 commit comments

Comments
 (0)