From e5a79b111c1e6c47b88edcf127ecb9b6dedf0525 Mon Sep 17 00:00:00 2001 From: Milad Khajavi Date: Sun, 22 Jan 2023 15:00:30 +0330 Subject: [PATCH] Make The Check Artifact Build Process Optional (#103) * make check build process optional. * fix errors. * scalafix. --- .../main/scala/zio/sbt/WebsitePlugin.scala | 16 +++++++-- .../src/main/scala/zio/sbt/WebsiteUtils.scala | 35 +++++++++++-------- 2 files changed, 34 insertions(+), 17 deletions(-) diff --git a/zio-sbt-website/src/main/scala/zio/sbt/WebsitePlugin.scala b/zio-sbt-website/src/main/scala/zio/sbt/WebsitePlugin.scala index 9bd981e8..49f298b2 100644 --- a/zio-sbt-website/src/main/scala/zio/sbt/WebsitePlugin.scala +++ b/zio-sbt-website/src/main/scala/zio/sbt/WebsitePlugin.scala @@ -26,7 +26,7 @@ import sbt.Keys.* import sbt.{Def, *} import zio.sbt.WebsiteUtils.{readFile, removeYamlHeader} -import zio.sbt.githubactions.Condition +import zio.sbt.githubactions.{Condition, Step} object WebsitePlugin extends sbt.AutoPlugin { @@ -64,6 +64,8 @@ object WebsitePlugin extends sbt.AutoPlugin { val sbtBuildOptions: SettingKey[List[String]] = settingKey[List[String]]("SBT build options") val updateReadmeCondition: SettingKey[Option[Condition]] = settingKey[Option[Condition]]("Condition to update readme") + val checkArtifactBuildProcessWorkflowStep: SettingKey[Option[Step]] = + settingKey[Option[Step]]("Workflow step for checking artifact build process") val ProjectStage = zio.sbt.WebsiteUtils.ProjectStage type ProjectStage = zio.sbt.WebsiteUtils.ProjectStage @@ -129,7 +131,14 @@ object WebsitePlugin extends sbt.AutoPlugin { docsVersioning := DocsVersioning.SemanticVersioning, sbtBuildOptions := List.empty[String], updateReadmeCondition := None, - ciWorkflowName := "CI" + ciWorkflowName := "CI", + checkArtifactBuildProcessWorkflowStep := + Some( + Step.SingleStep( + name = "Check artifacts build process", + run = Some(s"sbt ${sbtBuildOptions.value.mkString(" ")} +publishLocal") + ) + ) ) private def exit(exitCode: Int, errorMessage: String = "") = if (exitCode != 0) sys.error(errorMessage: String) @@ -349,7 +358,8 @@ object WebsitePlugin extends sbt.AutoPlugin { docsPublishBranch = docsPublishBranch.value, sbtBuildOptions = sbtBuildOptions.value, versioning = docsVersioning.value, - updateReadmeCondition = updateReadmeCondition.value + updateReadmeCondition = updateReadmeCondition.value, + checkArtifactBuildProcess = checkArtifactBuildProcessWorkflowStep.value ) val template = diff --git a/zio-sbt-website/src/main/scala/zio/sbt/WebsiteUtils.scala b/zio-sbt-website/src/main/scala/zio/sbt/WebsiteUtils.scala index b8c099e1..adeb9298 100644 --- a/zio-sbt-website/src/main/scala/zio/sbt/WebsiteUtils.scala +++ b/zio-sbt-website/src/main/scala/zio/sbt/WebsiteUtils.scala @@ -176,7 +176,8 @@ object WebsiteUtils { docsPublishBranch: String, sbtBuildOptions: List[String] = List.empty, versioning: DocsVersioning = SemanticVersioning, - updateReadmeCondition: Option[Condition] = None + updateReadmeCondition: Option[Condition] = None, + checkArtifactBuildProcess: Option[Step] = None ): String = { object Actions { val checkout: ActionRef = ActionRef("actions/checkout@v3.3.0") @@ -222,11 +223,6 @@ object WebsiteUtils { run = Some(s"sbt docs/clean; sbt ${sbtBuildOptions.mkString(" ")} docs/buildWebsite") ) - val CheckArtifactsBuildProcess: Step.SingleStep = Step.SingleStep( - name = "Check artifacts build process", - run = Some(s"sbt ${sbtBuildOptions.mkString(" ")} +publishLocal") - ) - val CheckGithubWorkflow: Step.SingleStep = Step.SingleStep( name = "Check if the site workflow is up to date", run = Some(s"sbt ${sbtBuildOptions.mkString(" ")} docs/checkGithubWorkflow") @@ -275,14 +271,25 @@ object WebsiteUtils { ), steps = Seq( Step.StepSequence( - Seq( - Checkout, - SetupJava, - CheckReadme, - CheckGithubWorkflow, - CheckArtifactsBuildProcess, - CheckWebsiteBuildProcess - ) + checkArtifactBuildProcess match { + case Some(artifactBuildProcess) => + Seq( + Checkout, + SetupJava, + CheckReadme, + CheckGithubWorkflow, + artifactBuildProcess, + CheckWebsiteBuildProcess + ) + case None => + Seq( + Checkout, + SetupJava, + CheckReadme, + CheckGithubWorkflow, + CheckWebsiteBuildProcess + ) + } ) ) ),