diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 819c7c1..853d513 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -30,7 +30,7 @@ jobs: os: [ubuntu-latest] scala: [3.1.2, 2.12.16, 2.13.8] java: [temurin@8] - project: [rootJS, rootJVM] + project: [rootJS, rootJVM, rootNative] runs-on: ${{ matrix.os }} steps: - name: Checkout current branch (full) @@ -77,6 +77,10 @@ jobs: if: matrix.project == 'rootJS' run: sbt 'project ${{ matrix.project }}' '++${{ matrix.scala }}' Test/scalaJSLinkerResult + - name: nativeLink + if: matrix.project == 'rootNative' + run: sbt 'project ${{ matrix.project }}' '++${{ matrix.scala }}' Test/nativeLink + - name: Test run: sbt 'project ${{ matrix.project }}' '++${{ matrix.scala }}' test @@ -90,11 +94,11 @@ jobs: - name: Make target directories if: github.event_name != 'pull_request' && (github.ref == 'refs/heads/main') - run: mkdir -p target .js/target site/target core/.js/target core/.jvm/target .jvm/target .native/target project/target + run: mkdir -p target .js/target core/.native/target site/target core/.js/target core/.jvm/target .jvm/target .native/target project/target - name: Compress target directories if: github.event_name != 'pull_request' && (github.ref == 'refs/heads/main') - run: tar cf targets.tar target .js/target site/target core/.js/target core/.jvm/target .jvm/target .native/target project/target + run: tar cf targets.tar target .js/target core/.native/target site/target core/.js/target core/.jvm/target .jvm/target .native/target project/target - name: Upload target directories if: github.event_name != 'pull_request' && (github.ref == 'refs/heads/main') @@ -167,6 +171,16 @@ jobs: tar xf targets.tar rm targets.tar + - name: Download target directories (3.1.2, rootNative) + uses: actions/download-artifact@v2 + with: + name: target-${{ matrix.os }}-${{ matrix.java }}-3.1.2-rootNative + + - name: Inflate target directories (3.1.2, rootNative) + run: | + tar xf targets.tar + rm targets.tar + - name: Download target directories (2.12.16, rootJS) uses: actions/download-artifact@v2 with: @@ -187,6 +201,16 @@ jobs: tar xf targets.tar rm targets.tar + - name: Download target directories (2.12.16, rootNative) + uses: actions/download-artifact@v2 + with: + name: target-${{ matrix.os }}-${{ matrix.java }}-2.12.16-rootNative + + - name: Inflate target directories (2.12.16, rootNative) + run: | + tar xf targets.tar + rm targets.tar + - name: Download target directories (2.13.8, rootJS) uses: actions/download-artifact@v2 with: @@ -207,6 +231,16 @@ jobs: tar xf targets.tar rm targets.tar + - name: Download target directories (2.13.8, rootNative) + uses: actions/download-artifact@v2 + with: + name: target-${{ matrix.os }}-${{ matrix.java }}-2.13.8-rootNative + + - name: Inflate target directories (2.13.8, rootNative) + run: | + tar xf targets.tar + rm targets.tar + - name: Import signing key if: env.PGP_SECRET != '' && env.PGP_PASSPHRASE == '' run: echo $PGP_SECRET | base64 -di | gpg --import diff --git a/build.sbt b/build.sbt index ef1ea8f..e72d5ae 100644 --- a/build.sbt +++ b/build.sbt @@ -1,4 +1,4 @@ -ThisBuild / tlBaseVersion := "1.5" +ThisBuild / tlBaseVersion := "1.4" ThisBuild / developers := List( tlGitHubDev("larsrh", "Lars Hupel"), @@ -21,11 +21,10 @@ ThisBuild / tlSiteApiUrl := Some( val disciplineV = "1.5.1" val specs2V = "4.16.0" -val macrotaskExecutorV = "1.0.0" lazy val root = tlCrossRootProject.aggregate(core) -lazy val core = crossProject(JSPlatform, JVMPlatform) +lazy val core = crossProject(JSPlatform, JVMPlatform, NativePlatform) .crossType(CrossType.Pure) .in(file("core")) .settings( @@ -41,5 +40,8 @@ lazy val core = crossProject(JSPlatform, JVMPlatform) .jsSettings( tlVersionIntroduced ~= { _ ++ List("2.12", "2.13").map(_ -> "1.1.0").toMap } ) + .nativeSettings( + tlVersionIntroduced := List("2.12", "2.13", "3").map(_ -> "1.4.0").toMap + ) lazy val docs = project.in(file("site")).enablePlugins(TypelevelSitePlugin).dependsOn(core.jvm) diff --git a/project/plugins.sbt b/project/plugins.sbt index d59ceda..4c67fdb 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -2,3 +2,5 @@ addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.10.0") val sbtTypelevelVersion = "0.4.12" addSbtPlugin("org.typelevel" % "sbt-typelevel" % sbtTypelevelVersion) addSbtPlugin("org.typelevel" % "sbt-typelevel-site" % sbtTypelevelVersion) +addSbtPlugin("org.portable-scala" % "sbt-scala-native-crossproject" % "1.1.0") +addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.4.4")