Skip to content

Commit

Permalink
Always execute DetektGenerateConfigTask in serial
Browse files Browse the repository at this point in the history
  • Loading branch information
BraisGabin committed Aug 7, 2022
1 parent 9857fc8 commit 3454a53
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 0 deletions.
Expand Up @@ -9,6 +9,8 @@ import io.gitlab.arturbosch.detekt.invoke.GenerateConfigArgument
import org.gradle.api.DefaultTask
import org.gradle.api.file.ConfigurableFileCollection
import org.gradle.api.provider.Provider
import org.gradle.api.services.BuildService
import org.gradle.api.services.BuildServiceParameters
import org.gradle.api.tasks.CacheableTask
import org.gradle.api.tasks.Classpath
import org.gradle.api.tasks.InputFiles
Expand Down Expand Up @@ -72,4 +74,7 @@ abstract class DetektGenerateConfigTask : DefaultTask() {
taskName = name,
)
}

@Suppress("UnnecessaryAbstractClass")
abstract class SingleExecutionBuildService : BuildService<BuildServiceParameters.None>
}
Expand Up @@ -60,8 +60,16 @@ class DetektPlugin : Plugin<Project> {
}

private fun Project.registerGenerateConfigTask(extension: DetektExtension) {
val detektGenerateConfigSingleExecution = project.gradle.sharedServices.registerIfAbsent(
"DetektGenerateConfigSingleExecution",
DetektGenerateConfigTask.SingleExecutionBuildService::class.java
) { spec ->
spec.maxParallelUsages.set(1)
}

tasks.register(GENERATE_CONFIG, DetektGenerateConfigTask::class.java) {
it.config.setFrom(project.provider { extension.config })
it.usesService(detektGenerateConfigSingleExecution)
}
}

Expand Down

0 comments on commit 3454a53

Please sign in to comment.