Skip to content

Commit

Permalink
Support Gradle build scan options (#52)
Browse files Browse the repository at this point in the history
  • Loading branch information
skrugly authored Sep 3, 2020
1 parent b13924f commit f206c7c
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 7 deletions.
17 changes: 11 additions & 6 deletions plugin/src/main/kotlin/Mirakle.kt
Original file line number Diff line number Diff line change
Expand Up @@ -44,18 +44,21 @@ class Mirakle : Plugin<Gradle> {

gradle.assertNonSupportedFeatures()

val originalStartParams = gradle.startParameter.newInstance()
val startParamsCopy = gradle.startParameter.copy()

gradle.startParameter.apply {
setTaskNames(listOf("mirakle"))
setExcludedTaskNames(emptyList())
useEmptySettings()
buildFile = File(originalStartParams.currentDir, "mirakle.gradle").takeIf(File::exists)
buildFile = File(startParamsCopy.currentDir, "mirakle.gradle").takeIf(File::exists)
?: //a way to make Gradle not evaluate project's default build.gradle file on local machine
File(originalStartParams.currentDir, "mirakle_build_file_stub").also { stub ->
File(startParamsCopy.currentDir, "mirakle_build_file_stub").also { stub ->
stub.createNewFile()
gradle.rootProject { it.afterEvaluate { stub.delete() } }
}

// disable build scan on local machine, but it will be enabled on remote if flag is set
isBuildScan = false
}

gradle.rootProject { project ->
Expand Down Expand Up @@ -93,7 +96,7 @@ class Mirakle : Plugin<Gradle> {
"-P$BUILD_ON_REMOTE=true",
"-p ${config.remoteFolder}/\"${project.name}\""
)
args(startParamsToArgs(originalStartParams))
args(startParamsToArgs(startParamsCopy))

isIgnoreExitValue = true

Expand Down Expand Up @@ -174,7 +177,7 @@ class Mirakle : Plugin<Gradle> {

try {
connection.newBuild()
.withArguments(startParamsToArgs(originalStartParams).plus("-P$FALLBACK=true"))
.withArguments(startParamsToArgs(startParamsCopy).plus("-P$FALLBACK=true"))
.setStandardInput(upload.standardInput ?: System.`in`)
.setStandardOutput(upload.standardOutput ?: System.out)
.setStandardError(upload.errorOutput ?: System.err)
Expand Down Expand Up @@ -269,7 +272,9 @@ val booleanParamsToOption = listOf(
StartParameter::isContinueOnFailure to "--continue",
StartParameter::isOffline to "--offline",
StartParameter::isParallelProjectExecutionEnabled to "--parallel",
StartParameter::isConfigureOnDemand to "--configure-on-demand"
StartParameter::isConfigureOnDemand to "--configure-on-demand",
StartParameter::isBuildScan to "--scan",
StartParameter::isNoBuildScan to "--no-scan"
)

val negativeBooleanParamsToOption = listOf(
Expand Down
8 changes: 7 additions & 1 deletion plugin/src/main/kotlin/utils.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import groovy.lang.Closure
import org.apache.tools.ant.taskdefs.condition.Os
import org.gradle.BuildAdapter
import org.gradle.BuildResult
import org.gradle.StartParameter
import org.gradle.api.Project
import org.gradle.api.Task
import org.gradle.api.execution.TaskExecutionListener
Expand Down Expand Up @@ -98,4 +99,9 @@ fun fixPathForWindows(path: String) = if (Os.isFamily(Os.FAMILY_WINDOWS)) {
val windowsDisk = path.first().toLowerCase()
val path = path.substringAfter(":\\").replace('\\', '/')
"/$windowsDisk/$path"
} else path
} else path

fun StartParameter.copy() = newInstance().also { copy ->
copy.isBuildScan = this.isBuildScan
copy.isNoBuildScan = this.isNoBuildScan
}

0 comments on commit f206c7c

Please sign in to comment.