@@ -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 " \n uses: ${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