name: CI on: pull_request: push: branches: - master - main jobs: changes: runs-on: ubuntu-latest outputs: code: ${{ steps.filter.outputs.code }} steps: - uses: actions/checkout@v4 - uses: dorny/paths-filter@v3 id: filter with: filters: | code: - '**.scala' - '**.java' - '**.sbt' - '.github/workflows/*.yml' - '**.so' - '**.dll' - 'src/main/resources/**' - 'project/build.properties' - '.scalafmt.conf' - 'sbt' - 'sbt.bat' - 'Makefile*' - '**/VERSION' code_format: name: code format needs: changes if: ${{ needs.changes.outputs.code == 'true' }} runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: scalafmt test run: ./sbt scalafmtCheckAll test-jdk: strategy: matrix: version: [ '8', '11', '17', '21' ] name: test jdk${{ matrix.version }} needs: changes if: ${{ needs.changes.outputs.code == 'true' }} runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 with: distribution: 'zulu' java-version: ${{ matrix.version }} - uses: actions/cache@v4 with: path: ~/.cache key: ${{ runner.os }}-jdk${{ matrix.version }}-${{ hashFiles('**/*.sbt') }} restore-keys: ${{ runner.os }}-jdk${{ matrix.version }}- - name: Test run: ./sbt test