diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a1a6c9d9c..01723272d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -80,6 +80,13 @@ jobs: repository: sbt/zinc ref: 1.10.x path: zinc + - uses: graalvm/setup-graalvm@v1 + if: ${{ matrix.jobtype >= 7 && matrix.jobtype <= 9 }} + with: + java-version: '23' + native-image-musl: 'true' + set-java-home: 'false' + github-token: ${{ secrets.GITHUB_TOKEN }} - name: Setup JDK uses: actions/setup-java@v4 with: diff --git a/build.sbt b/build.sbt index d59f9c164..56a908f4f 100644 --- a/build.sbt +++ b/build.sbt @@ -1176,8 +1176,7 @@ lazy val sbtClientProj = (project in file("client")) nativeImageReady := { () => () }, - nativeImageVersion := "23.0", - nativeImageJvm := "graalvm-java23", + nativeImageInstalled := true, nativeImageOutput := { val outputDir = (target.value / "bin").toPath if (!Files.exists(outputDir)) { @@ -1199,7 +1198,7 @@ lazy val sbtClientProj = (project in file("client")) s"-H:Name=${target.value / "bin" / "sbtn"}", ) ++ (if (isLinux && isArmArchitecture) Seq("-H:PageSize=65536") // Make sure binary runs on kernels with page size set to 4k, 16 and 64k - else Nil), + else Nil) ++ (if (isLinux && !isArmArchitecture) Seq("--static", "--libc=musl") else Nil), buildThinClient := { val isFish = Def.spaceDelimited("").parsed.headOption.fold(false)(_ == "--fish") val ext = if (isWin) ".bat" else if (isFish) ".fish" else ".sh"