chore: Only verify Jdk 9 classes on jdk 11. (#1078)

* chore: Only verify Jdk 9 classes on jdk 11.

* Update verify-jdk9-classes.sh
This commit is contained in:
He-Pin(kerr) 2024-01-29 19:57:54 +08:00 committed by GitHub
parent 25f80a160a
commit 1b0ee8cd75
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 29 additions and 17 deletions

View file

@ -181,7 +181,7 @@ jobs:
"+~ ${{ matrix.scalaVersion }} publishLocal publishM2" "+~ ${{ matrix.scalaVersion }} publishLocal publishM2"
- name: Install scala-cli - name: Install scala-cli
if: ${{ contains('11,17,21', matrix.javaVersion) }} if: ${{ matrix.javaVersion == 11 }}
run: |- 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 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" 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 sudo apt install scala-cli
- name: Use Scala-CLI to verify jdk 9 classes - name: Use Scala-CLI to verify jdk 9 classes
if: ${{ contains('11,17,21', matrix.javaVersion) }} if: ${{ matrix.javaVersion == 11 }}
run: |- run: |-
scala-cli --version chmod +x .github/workflows/verify-jdk9-classes.sh
echo "Starting verification with Scala-CLI" .github/workflows/verify-jdk9-classes.sh
scala-cli stream/target/scala-cli/VerifyJDK9Classes.sc && echo "Verification successful" || (
echo "Error when VerifyJDK9Classes"
exit 1
)

View file

@ -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."

View file

@ -22,24 +22,23 @@ object VerifyJDK9Classes {
lazy val settings: Seq[Setting[_]] = inConfig(Compile) { lazy val settings: Seq[Setting[_]] = inConfig(Compile) {
Seq { Seq {
sourceGenerators += { sourceGenerators += {
generateAndWriteScalaCLIScript( generateAndWriteScalaCLIScript(target)
target,
_ / "scala-cli" / "VerifyJDK9Classes.sc")
} }
} }
} }
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]] { Def.task[Seq[File]] {
val script = generateScalaCLIScript(version.value) val binaryVersion = scalaBinaryVersion.value
val file = locate(dir.value) val script = generateScalaCLIScript(version.value, binaryVersion)
val file = dir.value / "scala-cli" / s"VerifyJDK9Classes-${binaryVersion}.sc"
val content = script.stripMargin.format(version.value) val content = script.stripMargin.format(version.value)
if (!file.exists || IO.read(file) != content) IO.write(file, content) if (!file.exists || IO.read(file) != content) IO.write(file, content)
// the generated file is not used. // the generated file is not used.
Nil Nil
} }
private def generateScalaCLIScript(version: String): String = private def generateScalaCLIScript(version: String, scalaBinaryVersion: String): String =
s""" s"""
|/* |/*
| * Licensed to the Apache Software Foundation (ASF) under one or more | * 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 | * See the License for the specific language governing permissions and
| * limitations under the License. | * limitations under the License.
| */ | */
|//> using scala 2.13 |//> using scala ${scalaBinaryVersion}
|//> using dep "org.apache.pekko::pekko-stream:${version}" |//> using dep "org.apache.pekko::pekko-stream:${version}"
|////> using jvm 11
|object VerifyJDK9Classes { |object VerifyJDK9Classes {
| def main(args: Array[String]): Unit = { | def main(args: Array[String]): Unit = {
| import org.apache.pekko.actor.ActorSystem | import org.apache.pekko.actor.ActorSystem