Skip to content

Commit

Permalink
Run DetektGenerateConfigTask with Gradle's Worker API
Browse files Browse the repository at this point in the history
  • Loading branch information
3flex committed Oct 4, 2021
1 parent a619183 commit da743dd
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import io.gitlab.arturbosch.detekt.DetektPlugin.Companion.CONFIG_DIR_NAME
import io.gitlab.arturbosch.detekt.DetektPlugin.Companion.CONFIG_FILE
import io.gitlab.arturbosch.detekt.invoke.CliArgument
import io.gitlab.arturbosch.detekt.invoke.ConfigArgument
import io.gitlab.arturbosch.detekt.invoke.DetektInvoker
import io.gitlab.arturbosch.detekt.invoke.DetektWorkAction
import io.gitlab.arturbosch.detekt.invoke.GenerateConfigArgument
import io.gitlab.arturbosch.detekt.invoke.isDryRunEnabled
import org.gradle.api.DefaultTask
Expand All @@ -18,12 +18,14 @@ import org.gradle.api.tasks.PathSensitive
import org.gradle.api.tasks.PathSensitivity
import org.gradle.api.tasks.TaskAction
import org.gradle.language.base.plugins.LifecycleBasePlugin
import org.gradle.workers.WorkerExecutor
import java.nio.file.Files
import javax.inject.Inject

@CacheableTask
open class DetektGenerateConfigTask @Inject constructor(
private val objects: ObjectFactory
private val objects: ObjectFactory,
private val workerExecutor: WorkerExecutor
) : DefaultTask() {

init {
Expand Down Expand Up @@ -63,10 +65,15 @@ open class DetektGenerateConfigTask @Inject constructor(
ConfigArgument(configurationToUse.last())
)

DetektInvoker.create(isDryRun).invokeCli(
arguments = arguments.flatMap(CliArgument::toArgument),
classpath = detektClasspath,
taskName = name,
)
val workQueue = workerExecutor.processIsolation { workerSpec ->
workerSpec.classpath.from(detektClasspath)
}

workQueue.submit(DetektWorkAction::class.java) { workParameters ->
workParameters.arguments.set(arguments.flatMap(CliArgument::toArgument))
workParameters.dryRun.set(isDryRun)
workParameters.classpath.from(detektClasspath)
workParameters.taskName.set(name)
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ abstract class DetektWorkAction : WorkAction<DetektWorkParameters> {
parameters.arguments.get(),
parameters.classpath,
parameters.taskName.get(),
parameters.ignoreFailures.get()
parameters.ignoreFailures.getOrElse(false)
)
return
}
Expand Down

0 comments on commit da743dd

Please sign in to comment.