From 49e46f9df2efd2e242b1c9e93f51869eebe0965c Mon Sep 17 00:00:00 2001 From: Daniel Spiewak Date: Thu, 9 Apr 2020 18:31:26 -0600 Subject: [PATCH] Added id to WorkflowStep --- src/main/scala/sbtghactions/GenerativePlugin.scala | 9 +++++---- src/main/scala/sbtghactions/WorkflowStep.scala | 7 ++++--- src/test/scala/sbtghactions/GenerativePluginSpec.scala | 4 ++++ 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/main/scala/sbtghactions/GenerativePlugin.scala b/src/main/scala/sbtghactions/GenerativePlugin.scala index f7385ed..1f5e571 100644 --- a/src/main/scala/sbtghactions/GenerativePlugin.scala +++ b/src/main/scala/sbtghactions/GenerativePlugin.scala @@ -145,6 +145,7 @@ ${indent(rendered.mkString("\n"), 1)}""" import WorkflowStep._ val renderedName = step.name.map(wrap).map("name: " + _ + "\n").getOrElse("") + val renderedId = step.id.map(wrap).map("id: " + _ + "\n").getOrElse("") val renderedCond = step.cond.map(wrap).map("if: " + _ + "\n").getOrElse("") val renderedShell = if (declareShell) "shell: bash\n" else "" @@ -154,7 +155,7 @@ ${indent(rendered.mkString("\n"), 1)}""" else renderedEnvPre + "\n" - val preamblePre = renderedName + renderedCond + renderedEnv + val preamblePre = renderedName + renderedId + renderedCond + renderedEnv val preamble = if (preamblePre.isEmpty) "" @@ -162,10 +163,10 @@ ${indent(rendered.mkString("\n"), 1)}""" preamblePre val body = step match { - case Run(commands, _, _, _) => + case Run(commands, _, _, _, _) => renderedShell + "run: " + wrap(commands.mkString("\n")) - case Sbt(commands, _, _, _) => + case Sbt(commands, _, _, _, _) => val safeCommands = commands map { c => if (c.indexOf(' ') >= 0) s"'$c'" @@ -175,7 +176,7 @@ ${indent(rendered.mkString("\n"), 1)}""" renderedShell + "run: " + wrap(s"$sbt ++$${{ matrix.scala }} ${safeCommands.mkString(" ")}") - case Use(owner, repo, version, params, _, _, _) => + case Use(owner, repo, version, params, _, _, _, _) => val renderedParamsPre = compileEnv(params, prefix = "with") val renderedParams = if (renderedParamsPre.isEmpty) "" diff --git a/src/main/scala/sbtghactions/WorkflowStep.scala b/src/main/scala/sbtghactions/WorkflowStep.scala index 487688b..ad91d15 100644 --- a/src/main/scala/sbtghactions/WorkflowStep.scala +++ b/src/main/scala/sbtghactions/WorkflowStep.scala @@ -17,6 +17,7 @@ package sbtghactions sealed trait WorkflowStep extends Product with Serializable { + def id: Option[String] def name: Option[String] def cond: Option[String] def env: Map[String, String] @@ -34,7 +35,7 @@ object WorkflowStep { def ComputeVar(name: String, cmd: String): WorkflowStep = Run(List(s"echo ::set-env name=$name::$$($cmd)"), name = Some(s"Export $name")) - final case class Run(commands: List[String], name: Option[String] = None, cond: Option[String] = None, env: Map[String, String] = Map()) extends WorkflowStep - final case class Sbt(commands: List[String], name: Option[String] = None, cond: Option[String] = None, env: Map[String, String] = Map()) extends WorkflowStep - final case class Use(owner: String, repo: String, version: Int, params: Map[String, String] = Map(), name: Option[String] = None, cond: Option[String] = None, env: Map[String, String] = Map()) extends WorkflowStep + final case class Run(commands: List[String], id: Option[String] = None, name: Option[String] = None, cond: Option[String] = None, env: Map[String, String] = Map()) extends WorkflowStep + final case class Sbt(commands: List[String], id: Option[String] = None, name: Option[String] = None, cond: Option[String] = None, env: Map[String, String] = Map()) extends WorkflowStep + final case class Use(owner: String, repo: String, version: Int, params: Map[String, String] = Map(), id: Option[String] = None, name: Option[String] = None, cond: Option[String] = None, env: Map[String, String] = Map()) extends WorkflowStep } diff --git a/src/test/scala/sbtghactions/GenerativePluginSpec.scala b/src/test/scala/sbtghactions/GenerativePluginSpec.scala index 780ea0e..5a0601b 100644 --- a/src/test/scala/sbtghactions/GenerativePluginSpec.scala +++ b/src/test/scala/sbtghactions/GenerativePluginSpec.scala @@ -161,6 +161,10 @@ class GenerativePluginSpec extends Specification { compileStep(Run(List("echo hi")), "") mustEqual "- run: echo hi" } + "compile a simple run with an id" in { + compileStep(Run(List("echo hi"), id = Some("bippy")), "") mustEqual "- id: bippy\n run: echo hi" + } + "compile a simple run with a name" in { compileStep( Run(