name: CI on: pull_request: push: branches: - main concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: setup-bazel: runs-on: ${{ matrix.os }}-latest strategy: fail-fast: false matrix: os: - macos - ubuntu - windows steps: - name: Checkout example uses: actions/checkout@v4 with: repository: bazelbuild/examples sparse-checkout: java-maven sparse-checkout-cone-mode: false - name: Checkout setup-bazel uses: actions/checkout@v4 with: path: setup-bazel - name: Prepare environment (POSIX) if: matrix.os != 'windows' run: | rm $(which bazel) shopt -s dotglob mv java-maven/* . rmdir java-maven - name: Prepare environment (macOS) if: matrix.os == 'macos' run: ln -s $HOME/.docker/run/docker.sock /var/run/docker.sock - name: Prepare environment (Windows) if: matrix.os == 'windows' run: | Remove-Item -Path (Get-Command bazel.exe).Source Get-ChildItem -Path java-maven -Recurse -File | Move-Item -Destination . Remove-Item -Path java-maven -Recurse -Force - name: Setup Bazel uses: ./setup-bazel/ with: bazelisk-cache: true bazelisk-version: 1.x bazelrc: test --test_output=errors remote-cache: true repository-cache: true - run: bazel build ... - run: bazel test ... - name: Start SSH session if: failure() && runner.debug == '1' uses: mxschmitt/action-tmate@v3