From 1b0ee8cd756322ef76b1287f3e0d9067916084b2 Mon Sep 17 00:00:00 2001 From: "He-Pin(kerr)" Date: Mon, 29 Jan 2024 19:57:54 +0800 Subject: [PATCH] chore: Only verify Jdk 9 classes on jdk 11. (#1078) * chore: Only verify Jdk 9 classes on jdk 11. * Update verify-jdk9-classes.sh --- .github/workflows/nightly-builds.yml | 12 ++++-------- .github/workflows/verify-jdk9-classes.sh | 18 ++++++++++++++++++ project/VerifyJDK9Classes.scala | 16 +++++++--------- 3 files changed, 29 insertions(+), 17 deletions(-) create mode 100644 .github/workflows/verify-jdk9-classes.sh diff --git a/.github/workflows/nightly-builds.yml b/.github/workflows/nightly-builds.yml index 93dd6a2a26..90dd4b045b 100644 --- a/.github/workflows/nightly-builds.yml +++ b/.github/workflows/nightly-builds.yml @@ -181,7 +181,7 @@ jobs: "+~ ${{ matrix.scalaVersion }} publishLocal publishM2" - name: Install scala-cli - if: ${{ contains('11,17,21', matrix.javaVersion) }} + if: ${{ matrix.javaVersion == 11 }} run: |- curl -sS "https://virtuslab.github.io/scala-cli-packages/KEY.gpg" | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/scala-cli.gpg 2>/dev/null sudo curl -s --compressed -o /etc/apt/sources.list.d/scala_cli_packages.list "https://virtuslab.github.io/scala-cli-packages/debian/scala_cli_packages.list" @@ -189,11 +189,7 @@ jobs: sudo apt install scala-cli - name: Use Scala-CLI to verify jdk 9 classes - if: ${{ contains('11,17,21', matrix.javaVersion) }} + if: ${{ matrix.javaVersion == 11 }} run: |- - scala-cli --version - echo "Starting verification with Scala-CLI" - scala-cli stream/target/scala-cli/VerifyJDK9Classes.sc && echo "Verification successful" || ( - echo "Error when VerifyJDK9Classes" - exit 1 - ) + chmod +x .github/workflows/verify-jdk9-classes.sh + .github/workflows/verify-jdk9-classes.sh diff --git a/.github/workflows/verify-jdk9-classes.sh b/.github/workflows/verify-jdk9-classes.sh new file mode 100644 index 0000000000..e4a13e6966 --- /dev/null +++ b/.github/workflows/verify-jdk9-classes.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +echo "Checking Scala CLI version..." +scala-cli --version + +echo "Starting verification with Scala-CLI..." + +for file in stream/target/scala-cli/*.sc; do + echo "Starting verification for with file: $file." + if scala-cli "$file" ; then + echo "Verification successful for $file." + else + echo "Error when verifying $file." + exit 1 + fi +done + +echo "All verifications successful." diff --git a/project/VerifyJDK9Classes.scala b/project/VerifyJDK9Classes.scala index f4c1636db4..4c0870577d 100644 --- a/project/VerifyJDK9Classes.scala +++ b/project/VerifyJDK9Classes.scala @@ -22,24 +22,23 @@ object VerifyJDK9Classes { lazy val settings: Seq[Setting[_]] = inConfig(Compile) { Seq { sourceGenerators += { - generateAndWriteScalaCLIScript( - target, - _ / "scala-cli" / "VerifyJDK9Classes.sc") + generateAndWriteScalaCLIScript(target) } } } - def generateAndWriteScalaCLIScript(dir: SettingKey[File], locate: File => File): Def.Initialize[Task[Seq[sbt.File]]] = + def generateAndWriteScalaCLIScript(dir: SettingKey[File]): Def.Initialize[Task[Seq[sbt.File]]] = Def.task[Seq[File]] { - val script = generateScalaCLIScript(version.value) - val file = locate(dir.value) + val binaryVersion = scalaBinaryVersion.value + val script = generateScalaCLIScript(version.value, binaryVersion) + val file = dir.value / "scala-cli" / s"VerifyJDK9Classes-${binaryVersion}.sc" val content = script.stripMargin.format(version.value) if (!file.exists || IO.read(file) != content) IO.write(file, content) // the generated file is not used. Nil } - private def generateScalaCLIScript(version: String): String = + private def generateScalaCLIScript(version: String, scalaBinaryVersion: String): String = s""" |/* | * Licensed to the Apache Software Foundation (ASF) under one or more @@ -57,9 +56,8 @@ object VerifyJDK9Classes { | * See the License for the specific language governing permissions and | * limitations under the License. | */ - |//> using scala 2.13 + |//> using scala ${scalaBinaryVersion} |//> using dep "org.apache.pekko::pekko-stream:${version}" - |////> using jvm 11 |object VerifyJDK9Classes { | def main(args: Array[String]): Unit = { | import org.apache.pekko.actor.ActorSystem