diff --git a/.github/workflows/gazelle_examples.yaml b/.github/workflows/gazelle_examples.yaml index 50dfad9c..8a2a6d4a 100644 --- a/.github/workflows/gazelle_examples.yaml +++ b/.github/workflows/gazelle_examples.yaml @@ -14,12 +14,19 @@ jobs: matrix: runs-on: - ubuntu-latest + - windows-latest runs-on: ${{ matrix.runs-on }} steps: - uses: actions/checkout@v3 + # The windows-latest image comes with Java 8 but rules_jvm_external requires at least 11, so we install a newer JDK. + - uses: actions/setup-java@v4 + with: + distribution: "zulu" + java-version: "21" + - uses: bazelbuild/setup-bazelisk@v2 - name: Mount bazel action cache diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 79c4ff39..4d78234b 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -16,6 +16,7 @@ jobs: strategy: matrix: runs-on: + # Most of the tests don't run on Windows, so we have a separate job for running just the ones that do. - ubuntu-latest flags: - "" diff --git a/.github/workflows/tests_windows.yaml b/.github/workflows/tests_windows.yaml new file mode 100644 index 00000000..8588b81b --- /dev/null +++ b/.github/workflows/tests_windows.yaml @@ -0,0 +1,48 @@ +name: Tests (Windows) + +on: + push: + branches: [main] + pull_request: + branches: [main] + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +jobs: + # We don't run the tests in the main test job because most of them don't work on Windows, but the Gazelle ones should, so we run those. + test_windows: + strategy: + matrix: + runs-on: + - windows-latest + + runs-on: ${{ matrix.runs-on }} + + steps: + - uses: actions/checkout@v3 + + # The windows-latest image comes with Java 8 but rules_jvm_external requires at least 11, so we install a newer JDK. + - uses: actions/setup-java@v4 + with: + distribution: "zulu" + java-version: "21" + + - uses: bazelbuild/setup-bazelisk@v2 + + - name: Mount bazel action cache + uses: actions/cache@v2 + with: + path: "~/.cache/bazel" + key: bazel + + - name: Mount bazel repo cache + uses: actions/cache@v2 + with: + path: "~/.cache/bazel-repo" + key: bazel-repo + + - name: bzlmod gazelle + env: + # Bazelisk will download bazel to here, ensure it is cached between runs. + XDG_CACHE_HOME: ~/.cache/bazel-repo + run: bazelisk --bazelrc=.github/workflows/ci.bazelrc test //java/gazelle/...