name: Client Test on: pull_request: push: permissions: contents: read # to fetch code (actions/checkout) jobs: test: strategy: fail-fast: false matrix: include: - os: ubuntu-latest java: 8 distribution: zulu - os: macos-latest java: 17 distribution: temurin - os: windows-latest java: 8 distribution: zulu runs-on: ${{ matrix.os }} env: JAVA_OPTS: -Xms800M -Xmx2G -Xss6M -XX:ReservedCodeCacheSize=128M -server -Dsbt.io.virtual=false -Dfile.encoding=UTF-8 JVM_OPTS: -Xms800M -Xmx2G -Xss6M -XX:ReservedCodeCacheSize=128M -server -Dsbt.io.virtual=false -Dfile.encoding=UTF-8 SBT_ETC_FILE: $HOME/etc/sbt/sbtopts TEST_SBT_VER: 1.11.4 steps: - uses: actions/checkout@v5 - name: Setup JDK uses: actions/setup-java@v5 with: distribution: "zulu" java-version: "8" cache: sbt - uses: sbt/setup-sbt@v1 - name: Set up Python 3.12 uses: actions/setup-python@v5 with: python-version: 3.12 - name: Setup Windows C++ toolchain uses: ilammy/msvc-dev-cmd@v1 if: ${{ matrix.os == 'windows-latest' }} - name: Client test (Linux) if: ${{ matrix.os == 'ubuntu-latest' }} shell: bash run: | # test building sbtn on Linux sbt "-Dsbt.io.virtual=false" nativeImage # smoke test native Image ./client/target/bin/sbtn --sbt-script=$(pwd)/sbt about ./client/target/bin/sbtn --sbt-script=$(pwd)/sbt shutdown # test launcher script echo build using JDK 8 test using JDK 8 and JDK 11 cd launcher-package sbt -Dsbt.build.version=$TEST_SBT_VER rpm:packageBin debian:packageBin sbt -Dsbt.build.version=$TEST_SBT_VER integrationTest/test cd citest && ./test.sh $HOME/bin/jabba install $JDK11 && exec $HOME/bin/jabba which --home $JDK11 java -Xmx32m -version ./test.sh - name: Client test (macOS) if: ${{ matrix.os == 'macos-latest' }} shell: bash run: | # test building sbtn on macOS ./sbt "-Dsbt.io.virtual=false" nativeImage # test launcher script cd launcher-package bin/coursier resolve ../sbt -Dsbt.build.version=$TEST_SBT_VER integrationTest/test # This fails due to the JLine issue # cd citest && ./test.sh - name: Client test (Windows) if: ${{ matrix.os == 'windows-latest' }} shell: bash run: | # test building sbtn on Windows sbt "-Dsbt.io.virtual=false" nativeImage # smoke test native Image ./client/target/bin/sbtn --sbt-script=$(pwd)/launcher-package/src/universal/bin/sbt.bat about ./client/target/bin/sbtn --sbt-script=$(pwd)/launcher-package/src/universal/bin/sbt.bat shutdown # test launcher script echo build using JDK 8, test using JDK 8, on Windows cd launcher-package bin/coursier.bat resolve sbt -Dsbt.build.version=$TEST_SBT_VER integrationTest/test cd citest ./test.bat test3/test3.bat