Skip to content

Commit b087f26

Browse files
committed
Split out re-usable workflows for regular workflows
1 parent 2cbf195 commit b087f26

File tree

6 files changed

+262
-163
lines changed

6 files changed

+262
-163
lines changed

build.sbt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ name := "sbt-typelevel"
22

33
import org.typelevel.sbt.gha.{PermissionScope, PermissionValue, Permissions}
44

5-
ThisBuild / tlBaseVersion := "0.7"
5+
ThisBuild / tlBaseVersion := "0.8"
66
ThisBuild / crossScalaVersions := Seq("2.12.20")
77
ThisBuild / developers ++= List(
88
tlGitHubDev("armanbilge", "Arman Bilge"),

ci/src/main/scala/org/typelevel/sbt/TypelevelCiPlugin.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ object TypelevelCiPlugin extends AutoPlugin {
150150
val dependencySubmission =
151151
if (tlCiDependencyGraphJob.value)
152152
List(
153-
WorkflowJob(
153+
WorkflowJob.Run(
154154
"dependency-submission",
155155
"Submit Dependencies",
156156
scalas = Nil,
@@ -173,7 +173,7 @@ object TypelevelCiPlugin extends AutoPlugin {
173173
Some(file(".scala-steward.conf")).filter(_.exists()),
174174
githubWorkflowAddedJobs ++= {
175175
tlCiStewardValidateConfig.value.toList.map { config =>
176-
WorkflowJob(
176+
WorkflowJob.Run(
177177
"validate-steward",
178178
"Validate Steward Config",
179179
WorkflowStep.Checkout ::

github-actions/src/main/scala/org/typelevel/sbt/gha/GenerativePlugin.scala

Lines changed: 39 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -414,7 +414,41 @@ object GenerativePlugin extends AutoPlugin {
414414
renderedParams
415415
}
416416

417-
def compileJob(job: WorkflowJob, sbt: String): String = {
417+
def compileJob(job: WorkflowJob, sbt: String): String = job match {
418+
case job: WorkflowJob.Run => compileRunJob(job, sbt)
419+
case job: WorkflowJob.Use => compileUseJob(job)
420+
}
421+
def compileUseJob(job: WorkflowJob.Use): String = {
422+
val renderedUses = s"uses: ${job.uses}\n"
423+
424+
val renderedSecrets = job.secrets.fold("")(compileSecrets)
425+
426+
val renderedOutputs = {
427+
val renderedOutputsPre = compileEnv(job.outputs, prefix = "outputs")
428+
if (renderedOutputsPre.isEmpty)
429+
""
430+
else
431+
"\n" + renderedOutputsPre
432+
}
433+
434+
val renderedInputs = {
435+
val renderedInputsPre = compileEnv(job.params, prefix = "with")
436+
if (renderedInputsPre.isEmpty)
437+
""
438+
else
439+
"\n" + renderedInputsPre
440+
}
441+
442+
// format: off
443+
val body = s"""name: ${wrap(job.name)}
444+
${renderedUses}${renderedInputs}${renderedOutputs}${renderedSecrets}
445+
|""".stripMargin
446+
// format: on
447+
448+
s"${job.id}:\n${indent(body, 1)}"
449+
}
450+
451+
def compileRunJob(job: WorkflowJob.Run, sbt: String): String = {
418452
val renderedNeeds =
419453
if (job.needs.isEmpty)
420454
""
@@ -578,17 +612,12 @@ object GenerativePlugin extends AutoPlugin {
578612

579613
val renderedFailFast = job.matrixFailFast.fold("")("\n fail-fast: " + _)
580614

581-
val renderedUses =
582-
job.uses.fold("") { uses => s"\nuses: ${uses}" }
583-
584-
val renderedSecrets = compileSecrets(job.secrets)
585-
586615
// format: off
587616
val body = s"""name: ${wrap(job.name)}${renderedNeeds}${renderedCond}
588617
|strategy:${renderedFailFast}
589618
| matrix:
590619
|${buildMatrix(2, "os" -> job.oses, "scala" -> job.scalas, "java" -> job.javas.map(_.render))}${renderedMatrices}
591-
|runs-on: ${runsOn}${renderedEnvironment}${renderedContainer}${renderedPerm}${renderedEnv}${renderedOutputs}${renderedConcurrency}${renderedTimeoutMinutes}${renderedUses}${renderedSecrets}
620+
|runs-on: ${runsOn}${renderedEnvironment}${renderedContainer}${renderedPerm}${renderedEnv}${renderedOutputs}${renderedConcurrency}${renderedTimeoutMinutes}
592621
|steps:
593622
|${indent(job.steps.map(compileStep(_, sbt, job.sbtStepPreamble, declareShell = declareShell)).mkString("\n\n"), 1)}""".stripMargin
594623
// format: on
@@ -869,7 +898,7 @@ ${indent(jobs.map(compileJob(_, sbt)).mkString("\n\n"), 1)}
869898
else
870899
githubWorkflowGeneratedUploadSteps.value.toList
871900

872-
WorkflowJob(
901+
WorkflowJob.Run(
873902
"build",
874903
"Test",
875904
githubWorkflowJobSetup.value.toList :::
@@ -893,7 +922,7 @@ ${indent(jobs.map(compileJob(_, sbt)).mkString("\n\n"), 1)}
893922
)
894923
},
895924
githubWorkflowPublishJob := {
896-
WorkflowJob(
925+
WorkflowJob.Run(
897926
"publish",
898927
"Publish Artifacts",
899928
githubWorkflowJobSetup.value.toList :::
@@ -1096,7 +1125,7 @@ ${indent(jobs.map(compileJob(_, sbt)).mkString("\n\n"), 1)}
10961125
Workflow(on = List(WorkflowTrigger.Push()))
10971126
.withName("Clean".some)
10981127
.withJobs(
1099-
WorkflowJob(
1128+
WorkflowJob.Run(
11001129
id = "delete-artifacts",
11011130
name = "Delete Artifacts",
11021131
env = Map("GITHUB_TOKEN" -> s"$${{ secrets.GITHUB_TOKEN }}"),

0 commit comments

Comments
 (0)