Skip to content

Commit 91860f3

Browse files
committed
Make the preprocessing tasks for workflow files cacheable
1 parent c7ed15c commit 91860f3

File tree

2 files changed

+18
-2
lines changed

2 files changed

+18
-2
lines changed

gradle/build-logic/src/main/kotlin/net/kautler/github_actions.gradle.kts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,12 @@ file(".github/workflows")
7373
languageVersion.set(JavaLanguageVersion.of(17))
7474
})
7575
}
76+
val deleteWorkflowYaml = tasks.register<Delete>("delete${pascalCasedWorkflowName}WorkflowYaml") {
77+
delete(preprocessWorkflow.flatMap { it.workflowFile })
78+
}
79+
preprocessWorkflow {
80+
dependsOn(deleteWorkflowYaml)
81+
}
7682
preprocessWorkflows {
7783
dependsOn(preprocessWorkflow)
7884
}

gradle/build-logic/src/main/kotlin/net/kautler/githubactions/PreprocessGithubWorkflow.kt

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,28 +21,38 @@ import org.gradle.api.file.ConfigurableFileCollection
2121
import org.gradle.api.file.RegularFileProperty
2222
import org.gradle.api.provider.Property
2323
import org.gradle.api.provider.Provider
24+
import org.gradle.api.tasks.CacheableTask
25+
import org.gradle.api.tasks.Classpath
2426
import org.gradle.api.tasks.InputFile
2527
import org.gradle.api.tasks.InputFiles
2628
import org.gradle.api.tasks.Nested
2729
import org.gradle.api.tasks.OutputFile
30+
import org.gradle.api.tasks.PathSensitive
31+
import org.gradle.api.tasks.PathSensitivity.RELATIVE
2832
import org.gradle.api.tasks.TaskAction
2933
import org.gradle.jvm.toolchain.JavaLauncher
3034
import org.gradle.kotlin.dsl.submit
35+
import org.gradle.work.NormalizeLineEndings
3136
import org.gradle.workers.WorkerExecutor
3237
import java.io.File
3338
import javax.inject.Inject
3439

40+
@CacheableTask
3541
abstract class PreprocessGithubWorkflow : DefaultTask() {
3642
@get:InputFile
43+
@get:NormalizeLineEndings
44+
@get:PathSensitive(RELATIVE)
3745
abstract val workflowScript: RegularFileProperty
3846

3947
@get:InputFiles
48+
@get:NormalizeLineEndings
49+
@get:PathSensitive(RELATIVE)
4050
abstract val importedFiles: ConfigurableFileCollection
4151

42-
@get:InputFiles
52+
@get:Classpath
4353
abstract val kotlinCompilerClasspath: ConfigurableFileCollection
4454

45-
@get:InputFiles
55+
@get:Classpath
4656
abstract val mainKtsClasspath: ConfigurableFileCollection
4757

4858
@get:Nested

0 commit comments

Comments
 (0)