diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c50b4aa4..71b638ef 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -30,64 +30,64 @@ jobs: scala: [2.13, 3] java: - temurin@11 - - temurin@17 - temurin@21 + - temurin@23 - graal_22.3.3@11 - - graalvm@17 - graalvm@21 + - graalvm@23 - semeru@11 - - semeru@17 - semeru@21 + - semeru@23 include: - os: macos-14 - java: temurin@21 + java: temurin@23 scala: 2.13 - os: windows-latest - java: temurin@21 + java: temurin@23 scala: 2.13 - os: macos-14 - java: temurin@21 + java: temurin@23 scala: 3 - os: windows-latest - java: temurin@21 + java: temurin@23 scala: 3 exclude: - os: windows-latest java: graal_22.3.3@11 - - os: windows-latest - java: graalvm@17 - os: windows-latest java: graalvm@21 - os: windows-latest - java: semeru@11 + java: graalvm@23 - os: windows-latest - java: semeru@17 + java: semeru@11 - os: windows-latest java: semeru@21 + - os: windows-latest + java: semeru@23 - os: macos-14 java: graal_22.3.3@11 - - os: macos-14 - java: graalvm@17 - os: macos-14 java: graalvm@21 - os: macos-14 - java: semeru@11 + java: graalvm@23 - os: macos-14 - java: semeru@17 + java: semeru@11 - os: macos-14 java: semeru@21 - os: macos-14 - java: temurin@11 + java: semeru@23 - os: macos-14 - java: temurin@17 + java: temurin@11 - os: macos-14 java: temurin@21 + - os: macos-14 + java: temurin@23 - os: windows-latest java: temurin@11 - - os: windows-latest - java: temurin@17 - os: windows-latest java: temurin@21 + - os: windows-latest + java: temurin@23 - os: ubuntu-latest java: semeru@11 scala: 3 @@ -126,31 +126,31 @@ jobs: shell: bash run: sbt -v +update - - name: Setup Java (temurin@17) - id: setup-java-temurin-17 - if: matrix.java == 'temurin@17' + - name: Setup Java (temurin@21) + id: setup-java-temurin-21 + if: matrix.java == 'temurin@21' uses: actions/setup-java@v4 with: distribution: temurin - java-version: 17 + java-version: 21 cache: sbt - name: sbt update - if: matrix.java == 'temurin@17' && steps.setup-java-temurin-17.outputs.cache-hit == 'false' + if: matrix.java == 'temurin@21' && steps.setup-java-temurin-21.outputs.cache-hit == 'false' shell: bash run: sbt -v +update - - name: Setup Java (temurin@21) - id: setup-java-temurin-21 - if: matrix.java == 'temurin@21' + - name: Setup Java (temurin@23) + id: setup-java-temurin-23 + if: matrix.java == 'temurin@23' uses: actions/setup-java@v4 with: distribution: temurin - java-version: 21 + java-version: 23 cache: sbt - name: sbt update - if: matrix.java == 'temurin@21' && steps.setup-java-temurin-21.outputs.cache-hit == 'false' + if: matrix.java == 'temurin@23' && steps.setup-java-temurin-23.outputs.cache-hit == 'false' shell: bash run: sbt -v +update @@ -168,31 +168,31 @@ jobs: shell: bash run: sbt -v +update - - name: Setup Java (graalvm@17) - id: setup-java-graalvm-17 - if: matrix.java == 'graalvm@17' + - name: Setup Java (graalvm@21) + id: setup-java-graalvm-21 + if: matrix.java == 'graalvm@21' uses: graalvm/setup-graalvm@v1 with: distribution: graalvm - java-version: 17 + java-version: 21 cache: sbt - name: sbt update - if: matrix.java == 'graalvm@17' && steps.setup-java-graalvm-17.outputs.cache-hit == 'false' + if: matrix.java == 'graalvm@21' && steps.setup-java-graalvm-21.outputs.cache-hit == 'false' shell: bash run: sbt -v +update - - name: Setup Java (graalvm@21) - id: setup-java-graalvm-21 - if: matrix.java == 'graalvm@21' + - name: Setup Java (graalvm@23) + id: setup-java-graalvm-23 + if: matrix.java == 'graalvm@23' uses: graalvm/setup-graalvm@v1 with: distribution: graalvm - java-version: 21 + java-version: 23 cache: sbt - name: sbt update - if: matrix.java == 'graalvm@21' && steps.setup-java-graalvm-21.outputs.cache-hit == 'false' + if: matrix.java == 'graalvm@23' && steps.setup-java-graalvm-23.outputs.cache-hit == 'false' shell: bash run: sbt -v +update @@ -210,31 +210,31 @@ jobs: shell: bash run: sbt -v +update - - name: Setup Java (semeru@17) - id: setup-java-semeru-17 - if: matrix.java == 'semeru@17' + - name: Setup Java (semeru@21) + id: setup-java-semeru-21 + if: matrix.java == 'semeru@21' uses: actions/setup-java@v4 with: distribution: semeru - java-version: 17 + java-version: 21 cache: sbt - name: sbt update - if: matrix.java == 'semeru@17' && steps.setup-java-semeru-17.outputs.cache-hit == 'false' + if: matrix.java == 'semeru@21' && steps.setup-java-semeru-21.outputs.cache-hit == 'false' shell: bash run: sbt -v +update - - name: Setup Java (semeru@21) - id: setup-java-semeru-21 - if: matrix.java == 'semeru@21' + - name: Setup Java (semeru@23) + id: setup-java-semeru-23 + if: matrix.java == 'semeru@23' uses: actions/setup-java@v4 with: distribution: semeru - java-version: 21 + java-version: 23 cache: sbt - name: sbt update - if: matrix.java == 'semeru@21' && steps.setup-java-semeru-21.outputs.cache-hit == 'false' + if: matrix.java == 'semeru@23' && steps.setup-java-semeru-23.outputs.cache-hit == 'false' shell: bash run: sbt -v +update @@ -242,19 +242,19 @@ jobs: shell: bash run: sbt -v githubWorkflowCheck - - if: (!((matrix.java == 'semeru@11') || (matrix.java == 'semeru@17') || (matrix.java == 'semeru@21'))) && (!(contains(github.event.head_commit.message, 'full CI'))) + - if: (!((matrix.java == 'semeru@11') || (matrix.java == 'semeru@21') || (matrix.java == 'semeru@23'))) && (!(contains(github.event.head_commit.message, 'full CI'))) shell: bash run: sbt -v '++ ${{ matrix.scala }}' ci - - if: (!((matrix.java == 'semeru@11') || (matrix.java == 'semeru@17') || (matrix.java == 'semeru@21'))) && (contains(github.event.head_commit.message, 'full CI')) + - if: (!((matrix.java == 'semeru@11') || (matrix.java == 'semeru@21') || (matrix.java == 'semeru@23'))) && (contains(github.event.head_commit.message, 'full CI')) shell: bash run: sbt -v '++ ${{ matrix.scala }}' ciFull - - if: ((matrix.java == 'semeru@11') || (matrix.java == 'semeru@17') || (matrix.java == 'semeru@21')) && (!(contains(github.event.head_commit.message, 'full CI'))) + - if: ((matrix.java == 'semeru@11') || (matrix.java == 'semeru@21') || (matrix.java == 'semeru@23')) && (!(contains(github.event.head_commit.message, 'full CI'))) shell: bash run: 'sbt -v ''++ ${{ matrix.scala }}'' -J-Xgcpolicy:balanced ci' - - if: ((matrix.java == 'semeru@11') || (matrix.java == 'semeru@17') || (matrix.java == 'semeru@21')) && (contains(github.event.head_commit.message, 'full CI')) + - if: ((matrix.java == 'semeru@11') || (matrix.java == 'semeru@21') || (matrix.java == 'semeru@23')) && (contains(github.event.head_commit.message, 'full CI')) shell: bash run: 'sbt -v ''++ ${{ matrix.scala }}'' -J-Xgcpolicy:balanced ciFull' @@ -262,28 +262,28 @@ jobs: shell: bash run: sbt -v '++ ${{ matrix.scala }}' checkScalafix - - if: ((matrix.os == 'macos-14') || ((matrix.os == 'ubuntu-latest') && (matrix.java == 'temurin@21'))) && ((contains(github.event.head_commit.message, 'full CI')) || (contains(github.event.head_commit.message, 'stressLinchk'))) + - if: ((matrix.os == 'macos-14') || ((matrix.os == 'ubuntu-latest') && (matrix.java == 'temurin@23'))) && ((contains(github.event.head_commit.message, 'full CI')) || (contains(github.event.head_commit.message, 'stressLinchk'))) shell: bash run: sbt -v '++ ${{ matrix.scala }}' runLincheckTests - - if: ((matrix.os == 'macos-14') || ((matrix.os == 'ubuntu-latest') && (matrix.java == 'temurin@21'))) && ((contains(github.event.head_commit.message, 'full CI')) || (contains(github.event.head_commit.message, 'stressMcas'))) + - if: ((matrix.os == 'macos-14') || ((matrix.os == 'ubuntu-latest') && (matrix.java == 'temurin@23'))) && ((contains(github.event.head_commit.message, 'full CI')) || (contains(github.event.head_commit.message, 'stressMcas'))) shell: bash run: sbt -v '++ ${{ matrix.scala }}' stressMcas/Jcstress/run - - if: ((matrix.os == 'macos-14') || ((matrix.os == 'ubuntu-latest') && (matrix.java == 'temurin@21'))) && ((contains(github.event.head_commit.message, 'full CI')) || (contains(github.event.head_commit.message, 'stressCore'))) + - if: ((matrix.os == 'macos-14') || ((matrix.os == 'ubuntu-latest') && (matrix.java == 'temurin@23'))) && ((contains(github.event.head_commit.message, 'full CI')) || (contains(github.event.head_commit.message, 'stressCore'))) shell: bash run: sbt -v '++ ${{ matrix.scala }}' stressCore/Jcstress/run - - if: ((matrix.os == 'macos-14') || ((matrix.os == 'ubuntu-latest') && (matrix.java == 'temurin@21'))) && ((contains(github.event.head_commit.message, 'full CI')) || (contains(github.event.head_commit.message, 'stressData'))) + - if: ((matrix.os == 'macos-14') || ((matrix.os == 'ubuntu-latest') && (matrix.java == 'temurin@23'))) && ((contains(github.event.head_commit.message, 'full CI')) || (contains(github.event.head_commit.message, 'stressData'))) shell: bash run: sbt -v '++ ${{ matrix.scala }}' stressData/Jcstress/run - - if: ((matrix.os == 'macos-14') || ((matrix.os == 'ubuntu-latest') && (matrix.java == 'temurin@21'))) && ((contains(github.event.head_commit.message, 'full CI')) || (contains(github.event.head_commit.message, 'stressExperiments'))) + - if: ((matrix.os == 'macos-14') || ((matrix.os == 'ubuntu-latest') && (matrix.java == 'temurin@23'))) && ((contains(github.event.head_commit.message, 'full CI')) || (contains(github.event.head_commit.message, 'stressExperiments'))) shell: bash run: sbt -v '++ ${{ matrix.scala }}' stressExperiments/Jcstress/run - name: Upload JCStress results - if: (success() || failure()) && ((matrix.os == 'macos-14') || ((matrix.os == 'ubuntu-latest') && (matrix.java == 'temurin@21'))) && (contains(github.event.head_commit.message, 'full CI') || (contains(github.event.head_commit.message, 'stressMcas') || contains(github.event.head_commit.message, 'stressCore') || contains(github.event.head_commit.message, 'stressData') || contains(github.event.head_commit.message, 'stressExperiments'))) + if: (success() || failure()) && ((matrix.os == 'macos-14') || ((matrix.os == 'ubuntu-latest') && (matrix.java == 'temurin@23'))) && (contains(github.event.head_commit.message, 'full CI') || (contains(github.event.head_commit.message, 'stressMcas') || contains(github.event.head_commit.message, 'stressCore') || contains(github.event.head_commit.message, 'stressData') || contains(github.event.head_commit.message, 'stressExperiments'))) uses: actions/upload-artifact@v4 with: name: jcstress-results-${{ matrix.os }}-${{ matrix.scala }}-${{ matrix.java }} diff --git a/build.sbt b/build.sbt index b4a0560c..5f909499 100644 --- a/build.sbt +++ b/build.sbt @@ -21,17 +21,17 @@ val scala3 = "3.3.3" // CI JVM versions: val jvmOldest = JavaSpec.temurin("11") -val jvmLts = JavaSpec.temurin("17") -val jvmLatest = JavaSpec.temurin("21") +val jvmLts = JavaSpec.temurin("21") +val jvmLatest = JavaSpec.temurin("23") val jvmTemurins = List(jvmOldest, jvmLts, jvmLatest) -val jvmGraal_11 = JavaSpec(JavaSpec.Distribution.GraalVM("22.3.3"), "11") -val jvmGraal_17 = JavaSpec.graalvm("17") -val jvmGraal_21 = JavaSpec.graalvm("21") -val jvmGraals = List(jvmGraal_11, jvmGraal_17, jvmGraal_21) -val jvmOpenj9_11 = JavaSpec.semeru("11") -val jvmOpenj9_17 = JavaSpec.semeru("17") -val jvmOpenj9_21 = JavaSpec.semeru("21") -val jvmOpenj9s = List(jvmOpenj9_11, jvmOpenj9_17, jvmOpenj9_21) +val jvmGraalOldest = JavaSpec(JavaSpec.Distribution.GraalVM("22.3.3"), "11") +val jvmGraalLts = JavaSpec.graalvm("21") +val jvmGraalLatest = JavaSpec.graalvm("23") +val jvmGraals = List(jvmGraalOldest, jvmGraalLts, jvmGraalLatest) +val jvmOpenj9Oldest = JavaSpec.semeru("11") +val jvmOpenj9Lts = JavaSpec.semeru("21") +val jvmOpenj9Latest = JavaSpec.semeru("23") +val jvmOpenj9s = List(jvmOpenj9Oldest, jvmOpenj9Lts, jvmOpenj9Latest) // CI OS versions: val linux = "ubuntu-latest" @@ -153,8 +153,8 @@ ThisBuild / githubWorkflowBuildMatrixExclusions ++= Seq( jvmTemurins.map { j => MatrixExclude(Map("os" -> macos, "java" -> j.render)) }, // but see inclusions jvmTemurins.map { j => MatrixExclude(Map("os" -> windows, "java" -> j.render)) }, // but see inclusions Seq( - MatrixExclude(Map("os" -> linux, "java" -> jvmOpenj9_11.render, "scala" -> CrossVersion.binaryScalaVersion(scala3))), - MatrixExclude(Map("os" -> linux, "java" -> jvmGraal_11.render, "scala" -> CrossVersion.binaryScalaVersion(scala3))), + MatrixExclude(Map("os" -> linux, "java" -> jvmOpenj9Oldest.render, "scala" -> CrossVersion.binaryScalaVersion(scala3))), + MatrixExclude(Map("os" -> linux, "java" -> jvmGraalOldest.render, "scala" -> CrossVersion.binaryScalaVersion(scala3))), ), ).flatten ThisBuild / githubWorkflowBuildMatrixInclusions ++= crossScalaVersions.value.flatMap { scalaVer =>