Enable publishing test build build-scan.
^KT-45745 In Progress
This commit is contained in:
+1
@@ -14,6 +14,7 @@ internal val DEFAULT_GROOVY_SETTINGS_FILE =
|
|||||||
repositories {
|
repositories {
|
||||||
mavenLocal()
|
mavenLocal()
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
|
gradlePluginPortal()
|
||||||
}
|
}
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
|
|||||||
+43
-3
@@ -30,6 +30,7 @@ fun KGPBaseTest.project(
|
|||||||
gradleVersion: GradleVersion,
|
gradleVersion: GradleVersion,
|
||||||
buildOptions: KGPBaseTest.BuildOptions = defaultBuildOptions,
|
buildOptions: KGPBaseTest.BuildOptions = defaultBuildOptions,
|
||||||
forceOutput: Boolean = false,
|
forceOutput: Boolean = false,
|
||||||
|
enableBuildScan: Boolean = false,
|
||||||
addHeapDumpOptions: Boolean = true,
|
addHeapDumpOptions: Boolean = true,
|
||||||
enableGradleDebug: Boolean = false,
|
enableGradleDebug: Boolean = false,
|
||||||
projectPathAdditionalSuffix: String = "",
|
projectPathAdditionalSuffix: String = "",
|
||||||
@@ -60,7 +61,8 @@ fun KGPBaseTest.project(
|
|||||||
projectPath,
|
projectPath,
|
||||||
gradleVersion,
|
gradleVersion,
|
||||||
enableGradleDebug,
|
enableGradleDebug,
|
||||||
forceOutput
|
forceOutput,
|
||||||
|
enableBuildScan
|
||||||
)
|
)
|
||||||
|
|
||||||
if (buildJdk != null) testProject.setupNonDefaultJdk(buildJdk)
|
if (buildJdk != null) testProject.setupNonDefaultJdk(buildJdk)
|
||||||
@@ -77,13 +79,17 @@ fun TestProject.build(
|
|||||||
forceOutput: Boolean = this.forceOutput,
|
forceOutput: Boolean = this.forceOutput,
|
||||||
enableGradleDebug: Boolean = this.enableGradleDebug,
|
enableGradleDebug: Boolean = this.enableGradleDebug,
|
||||||
enableBuildCacheDebug: Boolean = false,
|
enableBuildCacheDebug: Boolean = false,
|
||||||
|
enableBuildScan: Boolean = this.enableBuildScan,
|
||||||
buildOptions: KGPBaseTest.BuildOptions = this.buildOptions,
|
buildOptions: KGPBaseTest.BuildOptions = this.buildOptions,
|
||||||
assertions: BuildResult.() -> Unit = {}
|
assertions: BuildResult.() -> Unit = {}
|
||||||
) {
|
) {
|
||||||
|
if (enableBuildScan) agreeToBuildScanService()
|
||||||
|
|
||||||
val allBuildArguments = commonBuildSetup(
|
val allBuildArguments = commonBuildSetup(
|
||||||
buildArguments.toList(),
|
buildArguments.toList(),
|
||||||
buildOptions,
|
buildOptions,
|
||||||
enableBuildCacheDebug,
|
enableBuildCacheDebug,
|
||||||
|
enableBuildScan,
|
||||||
gradleVersion
|
gradleVersion
|
||||||
)
|
)
|
||||||
val gradleRunnerForBuild = gradleRunner
|
val gradleRunnerForBuild = gradleRunner
|
||||||
@@ -92,6 +98,7 @@ fun TestProject.build(
|
|||||||
.withArguments(allBuildArguments)
|
.withArguments(allBuildArguments)
|
||||||
withBuildSummary(allBuildArguments) {
|
withBuildSummary(allBuildArguments) {
|
||||||
val buildResult = gradleRunnerForBuild.build()
|
val buildResult = gradleRunnerForBuild.build()
|
||||||
|
if (enableBuildScan) buildResult.printBuildScanUrl()
|
||||||
assertions(buildResult)
|
assertions(buildResult)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -104,13 +111,17 @@ fun TestProject.buildAndFail(
|
|||||||
forceOutput: Boolean = this.forceOutput,
|
forceOutput: Boolean = this.forceOutput,
|
||||||
enableGradleDebug: Boolean = this.enableGradleDebug,
|
enableGradleDebug: Boolean = this.enableGradleDebug,
|
||||||
enableBuildCacheDebug: Boolean = false,
|
enableBuildCacheDebug: Boolean = false,
|
||||||
|
enableBuildScan: Boolean = this.enableBuildScan,
|
||||||
buildOptions: KGPBaseTest.BuildOptions = this.buildOptions,
|
buildOptions: KGPBaseTest.BuildOptions = this.buildOptions,
|
||||||
assertions: BuildResult.() -> Unit = {}
|
assertions: BuildResult.() -> Unit = {}
|
||||||
) {
|
) {
|
||||||
|
if (enableBuildScan) agreeToBuildScanService()
|
||||||
|
|
||||||
val allBuildArguments = commonBuildSetup(
|
val allBuildArguments = commonBuildSetup(
|
||||||
buildArguments.toList(),
|
buildArguments.toList(),
|
||||||
buildOptions,
|
buildOptions,
|
||||||
enableBuildCacheDebug,
|
enableBuildCacheDebug,
|
||||||
|
enableBuildScan,
|
||||||
gradleVersion
|
gradleVersion
|
||||||
)
|
)
|
||||||
val gradleRunnerForBuild = gradleRunner
|
val gradleRunnerForBuild = gradleRunner
|
||||||
@@ -119,6 +130,7 @@ fun TestProject.buildAndFail(
|
|||||||
.withArguments(allBuildArguments)
|
.withArguments(allBuildArguments)
|
||||||
withBuildSummary(allBuildArguments) {
|
withBuildSummary(allBuildArguments) {
|
||||||
val buildResult = gradleRunnerForBuild.buildAndFail()
|
val buildResult = gradleRunnerForBuild.buildAndFail()
|
||||||
|
if (enableBuildScan) buildResult.printBuildScanUrl()
|
||||||
assertions(buildResult)
|
assertions(buildResult)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -152,7 +164,8 @@ class TestProject(
|
|||||||
val projectPath: Path,
|
val projectPath: Path,
|
||||||
val gradleVersion: GradleVersion,
|
val gradleVersion: GradleVersion,
|
||||||
val enableGradleDebug: Boolean,
|
val enableGradleDebug: Boolean,
|
||||||
val forceOutput: Boolean
|
val forceOutput: Boolean,
|
||||||
|
val enableBuildScan: Boolean
|
||||||
) {
|
) {
|
||||||
val rootBuildGradle: Path get() = projectPath.resolve("build.gradle")
|
val rootBuildGradle: Path get() = projectPath.resolve("build.gradle")
|
||||||
val settingsGradle: Path get() = projectPath.resolve("settings.gradle")
|
val settingsGradle: Path get() = projectPath.resolve("settings.gradle")
|
||||||
@@ -173,15 +186,18 @@ private fun commonBuildSetup(
|
|||||||
buildArguments: List<String>,
|
buildArguments: List<String>,
|
||||||
buildOptions: KGPBaseTest.BuildOptions,
|
buildOptions: KGPBaseTest.BuildOptions,
|
||||||
enableBuildCacheDebug: Boolean,
|
enableBuildCacheDebug: Boolean,
|
||||||
|
enableBuildScan: Boolean,
|
||||||
gradleVersion: GradleVersion
|
gradleVersion: GradleVersion
|
||||||
): List<String> {
|
): List<String> {
|
||||||
val buildOptionsArguments = buildOptions.toArguments(gradleVersion)
|
val buildOptionsArguments = buildOptions.toArguments(gradleVersion)
|
||||||
val buildCacheDebugOption = if (enableBuildCacheDebug) "-Dorg.gradle.caching.debug=true" else null
|
val buildCacheDebugOption = if (enableBuildCacheDebug) "-Dorg.gradle.caching.debug=true" else null
|
||||||
|
val buildScanOption = if (enableBuildScan) "--scan" else null
|
||||||
return buildOptionsArguments +
|
return buildOptionsArguments +
|
||||||
buildArguments +
|
buildArguments +
|
||||||
listOfNotNull(
|
listOfNotNull(
|
||||||
"--full-stacktrace",
|
"--full-stacktrace",
|
||||||
buildCacheDebugOption
|
buildCacheDebugOption,
|
||||||
|
buildScanOption
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -254,6 +270,30 @@ private fun Path.addDefaultBuildFiles() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@OptIn(ExperimentalPathApi::class)
|
||||||
|
private fun TestProject.agreeToBuildScanService() {
|
||||||
|
settingsGradle.appendText(
|
||||||
|
"""
|
||||||
|
|
||||||
|
gradleEnterprise {
|
||||||
|
buildScan {
|
||||||
|
termsOfServiceUrl = "https://gradle.com/terms-of-service"
|
||||||
|
termsOfServiceAgree = "yes"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
""".trimIndent()
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun BuildResult.printBuildScanUrl() {
|
||||||
|
val buildScanUrl = output
|
||||||
|
.lineSequence()
|
||||||
|
.first { it.contains("https://gradle.com/s/") }
|
||||||
|
.replaceBefore("https://gradle", "")
|
||||||
|
println("Build scan url: $buildScanUrl")
|
||||||
|
}
|
||||||
|
|
||||||
private fun TestProject.setupNonDefaultJdk(pathToJdk: File) {
|
private fun TestProject.setupNonDefaultJdk(pathToJdk: File) {
|
||||||
gradleProperties.modify {
|
gradleProperties.modify {
|
||||||
"""
|
"""
|
||||||
|
|||||||
+1
@@ -2,6 +2,7 @@ pluginManagement {
|
|||||||
repositories {
|
repositories {
|
||||||
mavenLocal()
|
mavenLocal()
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
|
gradlePluginPortal()
|
||||||
}
|
}
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
|
|||||||
Reference in New Issue
Block a user