diff --git a/.github/workflows/launchers.yml b/.github/workflows/launchers.yml index 11bc93e..8a89907 100644 --- a/.github/workflows/launchers.yml +++ b/.github/workflows/launchers.yml @@ -12,7 +12,8 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-latest, windows-2016, macos-latest] + os: [ubuntu-latest, windows-latest, macos-latest] + scalaJsVersion: ["1.9.0", "1.10.0"] steps: - uses: actions/checkout@v2 with: @@ -23,16 +24,20 @@ jobs: with: jvm: 8 - run: | - ./mill -i "native.writeNativeImageScript" generate.sh "" && \ + ./mill -i "native[$scalaJsVersion].writeNativeImageScript" generate.sh "" && \ ./generate.sh && \ - ./mill -i "native.copyToArtifacts" artifacts/ + ./mill -i "native[$scalaJsVersion].copyToArtifacts" artifacts/ if: runner.os != 'Windows' + env: + scalaJsVersion: ${{ matrix.scalaJsVersion }} - run: | - @call ./mill.bat -i "native.writeNativeImageScript" generate.bat "" + @call ./mill.bat -i "native[%scalaJsVersion%].writeNativeImageScript" generate.bat "" @call generate.bat - @call ./mill.bat -i "native.copyToArtifacts" artifacts/ + @call ./mill.bat -i "native[%scalaJsVersion%].copyToArtifacts" artifacts/ shell: cmd if: runner.os == 'Windows' + env: + scalaJsVersion: ${{ matrix.scalaJsVersion }} - uses: actions/upload-artifact@v2.2.4 with: name: launcher-${{ matrix.os }} @@ -46,6 +51,10 @@ jobs: generate-static-launcher: runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + scalaJsVersion: ["1.9.0", "1.10.0"] steps: - uses: actions/checkout@v2 with: @@ -56,9 +65,11 @@ jobs: with: jvm: 8 - run: | - ./mill -i "native-static.writeNativeImageScript" generate.sh "" && \ + ./mill -i "native-static[$scalaJsVersion].writeNativeImageScript" generate.sh "" && \ ./generate.sh && \ - ./mill -i "native-static.copyToArtifacts" artifacts/ + ./mill -i "native-static[$scalaJsVersion].copyToArtifacts" artifacts/ + env: + scalaJsVersion: ${{ matrix.scalaJsVersion }} - uses: actions/upload-artifact@v2.2.4 with: name: launcher-${{ matrix.os }}-static @@ -72,6 +83,10 @@ jobs: generate-mostly-static-launcher: runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + scalaJsVersion: ["1.9.0", "1.10.0"] steps: - uses: actions/checkout@v2 with: @@ -82,9 +97,11 @@ jobs: with: jvm: 8 - run: | - ./mill -i "native-mostly-static.writeNativeImageScript" generate.sh "" && \ + ./mill -i "native-mostly-static[$scalaJsVersion].writeNativeImageScript" generate.sh "" && \ ./generate.sh && \ - ./mill -i "native-mostly-static.copyToArtifacts" artifacts/ + ./mill -i "native-mostly-static[$scalaJsVersion].copyToArtifacts" artifacts/ + env: + scalaJsVersion: ${{ matrix.scalaJsVersion }} - uses: actions/upload-artifact@v2.2.4 with: name: launcher-${{ matrix.os }}-mostly-static diff --git a/build.sc b/build.sc index dcf6789..0b836d8 100644 --- a/build.sc +++ b/build.sc @@ -9,10 +9,11 @@ import mill._ import mill.scalalib._ def scalaJsCliVersion = "1.1.1-sc1" +def scalaJsVersions = Seq("1.9.0", "1.10.0") -trait ScalaJsCliNativeImage extends ScalaModule with NativeImage { +class ScalaJsCliNativeImage(val scalaJsVersion0: String) extends ScalaModule with NativeImage { def scalaVersion = "2.13.8" - def scalaJsVersion = "1.9.0" + def scalaJsVersion = scalaJsVersion0 def nativeImageClassPath = T{ runClasspath() @@ -44,11 +45,11 @@ trait ScalaJsCliNativeImage extends ScalaModule with NativeImage { } } -object native extends ScalaJsCliNativeImage +object native extends Cross[ScalaJsCliNativeImage](scalaJsVersions: _*) def csDockerVersion = "2.1.0-M5-18-gfebf9838c" -object `native-static` extends ScalaJsCliNativeImage { +class ScalaJsCliStaticNativeImage(scalaJsVersion0: String) extends ScalaJsCliNativeImage(scalaJsVersion0) { def nameSuffix = "-static" def buildHelperImage = T { os.proc("docker", "build", "-t", "scala-cli-base-musl:latest", ".") @@ -69,8 +70,9 @@ object `native-static` extends ScalaJsCliNativeImage { super.writeNativeImageScript(scriptDest, imageDest)() } } +object `native-static` extends Cross[ScalaJsCliStaticNativeImage](scalaJsVersions: _*) -object `native-mostly-static` extends ScalaJsCliNativeImage { +class ScalaJsCliMostlyStaticNativeImage(scalaJsVersion0: String) extends ScalaJsCliNativeImage(scalaJsVersion0) { def nameSuffix = "-mostly-static" def nativeImageDockerParams = Some( NativeImage.linuxMostlyStaticParams( @@ -79,6 +81,7 @@ object `native-mostly-static` extends ScalaJsCliNativeImage { ) ) } +object `native-mostly-static` extends Cross[ScalaJsCliMostlyStaticNativeImage](scalaJsVersions: _*) def publishVersion = T{