Skip to content

Upgrade SBT 2.x to latest non RC version #894

Upgrade SBT 2.x to latest non RC version

Upgrade SBT 2.x to latest non RC version #894

Workflow file for this run

name: Validate PR
on:
pull_request:
push:
jobs:
# Run the unit test ahead of the scripted tests
validate:
strategy:
fail-fast: false
matrix:
include:
# sbt 1.x / Scala 2.12 build still targets JDK 8.
- os: ubuntu-latest
scala: 2.12.20
java: 8
- os: macos-latest
scala: 2.12.20
java: 8
# sbt 2.x / Scala 3 build requires JDK 17+ (its compiler bridge is
# compiled to Java 17 class files).
- os: ubuntu-latest
scala: 3.8.4
java: 17
- os: macos-latest
scala: 3.8.4
java: 17
runs-on: '${{ matrix.os }}'
steps:
- uses: actions/checkout@v5
- name: Setup JDK
uses: actions/setup-java@v5
with:
distribution: zulu
java-version: '${{ matrix.java }}'
cache: sbt
- uses: sbt/setup-sbt@v1
- name: Validate
run: sbt -v "; ++${{ matrix.scala }} ; validate"
scripted:
strategy:
fail-fast: false
matrix:
include:
# Each scripted suite runs once against sbt 1.x / Scala 2.12 (JDK 8)
# and once against sbt 2.x / Scala 3 (JDK 17+, required by its
# compiler bridge).
- os: ubuntu-latest
java: 8
distribution: zulu
command: "; ++2.12.20 ; validateUniversal"
- os: ubuntu-latest
java: 17
distribution: zulu
command: "; ++3.8.4 ; validateUniversal"
- os: ubuntu-latest
java: 8
distribution: zulu
command: "; ++2.12.20 ; validateUniversalSbt1" # No cross build, only SBT 1.x
- os: ubuntu-latest
java: 17
distribution: zulu
command: "; ++3.8.4 ; validateUniversalSbt2" # No cross build, only SBT 2.x
- os: ubuntu-latest
java: 8
distribution: zulu
command: "; ++2.12.20 ; validateJar"
- os: ubuntu-latest
java: 17
distribution: zulu
command: "; ++3.8.4 ; validateJar"
- os: ubuntu-latest
java: 8
distribution: zulu
command: "; ++2.12.20 ; validateBash"
- os: ubuntu-latest
java: 17
distribution: zulu
command: "; ++3.8.4 ; validateBash"
- os: ubuntu-latest
java: 8
distribution: zulu
command: "; ++2.12.20 ; validateAsh"
- os: ubuntu-latest
java: 17
distribution: zulu
command: "; ++3.8.4 ; validateAsh"
- os: ubuntu-latest
java: 8
distribution: zulu
command: "; ++2.12.20 ; validateRpm"
- os: ubuntu-latest
java: 17
distribution: zulu
command: "; ++3.8.4 ; validateRpm"
- os: ubuntu-latest
java: 8
distribution: zulu
command: "; ++2.12.20 ; validateDebian"
- os: ubuntu-latest
java: 17
distribution: zulu
command: "; ++3.8.4 ; validateDebian"
- os: ubuntu-latest
java: 8
distribution: zulu
command: "; ++2.12.20 ; validateDocker"
- os: ubuntu-latest
java: 17
distribution: zulu
command: "; ++3.8.4 ; validateDocker"
- os: ubuntu-latest
java: 8
distribution: zulu
command: "; ++2.12.20 ; validateDockerSbt1" # No cross build, only SBT 1.x
- os: ubuntu-latest
java: 17
distribution: zulu
command: "; ++3.8.4 ; validateDockerSbt2" # No cross build, only SBT 2.x
- os: ubuntu-latest
java: 11
distribution: temurin
command: "; ++2.12.20 ; validateJlink"
- os: ubuntu-latest
java: 17
distribution: temurin
command: "; ++3.8.4 ; validateJlink"
# GraalVM 22 already satisfies the JDK 17+ floor needed by the
# Scala 3 / sbt 2 compiler bridge, so this one stays cross-built.
- os: ubuntu-latest
java: 22
distribution: graalvm
command: +validateGraalVMNativeImage
- os: macos-latest
java: 8
distribution: zulu
command: "; ++2.12.20 ; validateMacOS"
- os: macos-latest
java: 17
distribution: zulu
command: "; ++3.8.4 ; validateMacOS"
- os: windows-latest
java: 8
distribution: zulu
command: "; ++2.12.20 ; validateWindows"
- os: windows-latest
java: 17
distribution: zulu
command: "; ++3.8.4 ; validateWindows"
needs:
- validate
runs-on: '${{ matrix.os }}'
steps:
- uses: actions/checkout@v5
- name: Setup JDK
uses: actions/setup-java@v5
with:
distribution: '${{ matrix.distribution }}'
java-version: '${{ matrix.java }}'
cache: sbt
- uses: sbt/setup-sbt@v1
- name: Scripted test
run: sbt -v '${{ matrix.command }}'
scripted-jdk-packager:
runs-on: ubuntu-latest
strategy:
fail-fast: false
needs:
- validate
steps:
- uses: actions/checkout@v4
- name: Download Zulu 8
run: |
# the standard zulu dist doesn't include javafx
download_url="https://cdn.azul.com/zulu/bin/zulu8.38.0.13-ca-fx-jdk8.0.212-linux_x64.tar.gz"
wget -O $RUNNER_TEMP/java_package.tar.gz $download_url
- name: Setup Azul JDK with JavaFX
uses: actions/setup-java@v4
with:
distribution: jdkfile
jdkFile: '${{ runner.temp }}/java_package.tar.gz'
java-version: 8.0.0
architecture: x64
cache: sbt
- uses: sbt/setup-sbt@v1
- name: Validate
run: sbt "+validateJdkPackagerTravis"