sbt-github-actions icon indicating copy to clipboard operation
sbt-github-actions copied to clipboard

upload-artifact/v4 not supported on GHES

Open erikvanoosten opened this issue 2 years ago • 2 comments

Upgrading to v0.22.0 results in the following error:

@actions/artifact v2.0.0+, upload-artifact@v4+ and download-artifact@v4+ are not currently supported on GHES.

Can we downgrade to v3 until v4 works on GHES as well?

As a workaround, you can downgrade these actions to v3 with the following super ugly code in build.sbt:

// "actions/upload-artifact/v4" and " actions/download-artifact/v4" are not supported on GHES, downgrade to v3
ThisBuild / githubWorkflowGeneratedUploadSteps := {
  (ThisBuild / githubWorkflowGeneratedUploadSteps).value.map {
    case workflow: WorkflowStep.Use =>
      workflow.ref match {
        case p: UseRef.Public =>
          if (p.owner == "actions" && p.repo == "upload-artifact") workflow.copy(ref = p.copy(ref = "v3"))
          else workflow
        case _ => workflow
      }
    case w => w
  }
}
ThisBuild / githubWorkflowGeneratedDownloadSteps := {
  (ThisBuild / githubWorkflowGeneratedDownloadSteps).value.map {
    case workflow: WorkflowStep.Use =>
      workflow.ref match {
        case p: UseRef.Public =>
          if (p.owner == "actions" && p.repo == "download-artifact") workflow.copy(ref = p.copy(ref = "v3"))
          else workflow
        case _ => workflow
      }
    case w => w
  }
}

erikvanoosten avatar Dec 23 '23 08:12 erikvanoosten

Hmm, to me it sounds like the best way to solve this issue is to make an sbt setting specifically for the upload-artifact/download-artifact version so people can adjust it as they need

@erikvanoosten wdyt?

mdedetrich avatar Dec 23 '23 08:12 mdedetrich

Indeed, that sound like a better idea. This can be generalized of course.

Perhaps something like:

ThisBuild / githubWorkflowStepVersions ++=
  Map("actions/upload-artifact" -> "v3", "actions/download-artifact" -> "v3")

erikvanoosten avatar Dec 23 '23 09:12 erikvanoosten