77@file:DependsOn(" actions:setup-java:v4" )
88@file:DependsOn(" actions:setup-python:v5" )
99@file:DependsOn(" gradle:actions__setup-gradle:v3" )
10+ @file:OptIn(ExperimentalKotlinLogicStep ::class )
1011
1112import io.github.typesafegithub.workflows.actions.actions.*
1213import io.github.typesafegithub.workflows.actions.gradle.ActionsSetupGradle
14+ import io.github.typesafegithub.workflows.annotations.ExperimentalKotlinLogicStep
1315import io.github.typesafegithub.workflows.domain.JobOutputs
1416import io.github.typesafegithub.workflows.domain.Mode
1517import io.github.typesafegithub.workflows.domain.Permission
1618import io.github.typesafegithub.workflows.domain.RunnerType
1719import io.github.typesafegithub.workflows.domain.actions.*
1820import io.github.typesafegithub.workflows.domain.triggers.PullRequest
1921import io.github.typesafegithub.workflows.domain.triggers.Push
22+ import io.github.typesafegithub.workflows.dsl.JobBuilder
2023import io.github.typesafegithub.workflows.dsl.expressions.Contexts
2124import io.github.typesafegithub.workflows.dsl.expressions.expr
2225import io.github.typesafegithub.workflows.dsl.workflow
2326import io.github.typesafegithub.workflows.yaml.writeToFile
27+ import java.time.Instant
28+
29+ fun JobBuilder <* >.publishToMavenLocal () {
30+ uses(
31+ name = " Set up JDK" ,
32+ action = SetupJava (
33+ javaVersion = " 11" ,
34+ distribution = SetupJava .Distribution .Zulu ,
35+ ),
36+ )
37+ uses(action = ActionsSetupGradle (generateJobSummary = false ))
38+ run (
39+ name = " Publish to Maven local" ,
40+ command = " ./gradlew publishToMavenLocal" ,
41+ )
42+ }
2443
2544workflow(
2645 name = " End-to-end tests" ,
@@ -29,18 +48,7 @@ workflow(
2948 PullRequest (),
3049 ),
3150 yamlConsistencyJobAdditionalSteps = {
32- uses(
33- name = " Set up JDK" ,
34- action = SetupJava (
35- javaVersion = " 11" ,
36- distribution = SetupJava .Distribution .Zulu ,
37- ),
38- )
39- uses(action = ActionsSetupGradle (generateJobSummary = false ))
40- run (
41- name = " Publish to Maven local" ,
42- command = " ./gradlew publishToMavenLocal" ,
43- )
51+ publishToMavenLocal()
4452 },
4553 sourceFile = __FILE__ .toPath(),
4654) {
@@ -193,6 +201,17 @@ workflow(
193201 command = " action=${Contexts .env.GITHUB_ACTION } repo=${Contexts .env.GITHUB_REPOSITORY } " ,
194202 condition = expr { always() },
195203 )
204+
205+ publishToMavenLocal()
206+
207+ run (
208+ name = " Step with a Kotlin-based logic" ,
209+ ifKotlin = { Instant .now() > Instant .parse(" 2022-03-04T12:34:56.00Z" ) },
210+ ) {
211+ println (" Hello from Kotlin! Now it's ${Instant .now()} " )
212+ println (" Running for commit ${github.sha} , branch ${github.ref} " )
213+ }
214+
196215 val scriptStep =
197216 uses(
198217 action = GithubScript (
0 commit comments