Skip to content

cross-test-core

cross-test-core #78

name: cross-test-core
on: [push, pull_request]
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [windows-latest, macos-latest, ubuntu-latest]
java-version: [11, 17]
scala-version: ['2.11', '2.12', '2.13']
env:
JAVA_OPTS: -Xmx4g
SCALA_VERSION: ${{ matrix.scala-version }}
steps:
- uses: actions/checkout@v2
- uses: coursier/cache-action@v6
continue-on-error: true
- uses: actions/setup-java@v1
with:
java-version: ${{ matrix.java-version}}
- uses: actions/setup-node@v2
with:
node-version: '16'
- name: install jsdom
run: npm install jsdom
- name: Run tests
continue-on-error: true
run: |
sbt "set ThisBuild / Test / parallelExecution := false" rescalaCore/compile rescalaCore/Test/compile rescalaCore/testQuick
# the idea here is, that we first do compile, Test / compile, testQuick sequentially, so if compilation fails on some sub project we abort early without half starting tests on some other sub project. However, sometimes compilation or testing fails spuriously, so we just do it again, which should fix most of the spurious compilation failures, and also may try to reexecute some of the spurious tests. As this keeps the incremental sbt cache, if the first one succeeds, the second one should be essentially for free.
- name: Run tests again for added reliability
run: |
sbt "set ThisBuild / Test / parallelExecution := false" rescalaCore/compile rescalaCore/Test/compile rescalaCore/testQuick