66 paths :
77 - pom.xml
88 - src/**
9+ - .github/workflows/ci.yml
910 pull_request :
1011 branches : [master]
1112 paths :
1213 - pom.xml
1314 - src/**
15+ - .github/workflows/ci.yml
1416
1517concurrency :
1618 cancel-in-progress : true
@@ -23,7 +25,11 @@ permissions:
2325jobs :
2426 test :
2527 name : Test package
26- runs-on : ubuntu-latest
28+ strategy :
29+ fail-fast : false
30+ matrix :
31+ target : [ubuntu-latest, windows-latest, macos-latest]
32+ runs-on : ${{matrix.target}}
2733 steps :
2834 - name : Checkout repository
2935 uses : actions/checkout@v4
@@ -36,22 +42,41 @@ jobs:
3642 java-version : 22
3743 cache : maven
3844 - name : Get tree-sitter commit
45+ shell : sh
3946 run : printf 'TREE_SITTER_REF=%s\n' "$(git rev-parse HEAD:core)" >> "$GITHUB_ENV"
40- - name : Set up tree-sitter
47+ - name : Set up tree-sitter CLI
48+ if : runner.os == 'Windows'
49+ uses : tree-sitter/setup-action/cli@v2
50+ - name : Set up tree-sitter library
4151 uses : tree-sitter/setup-action/lib@v2
4252 with :
4353 tree-sitter-ref : ${{env.TREE_SITTER_REF}}
4454 - name : Set up tree-sitter-java
55+ shell : bash
4556 run : |-
4657 git clone --depth=1 https://github.com/tree-sitter/tree-sitter-java
47- make -Ctree-sitter-java all install PREFIX="$RUNNER_TOOL_CACHE/tree-sitter/lib"
58+ cd tree-sitter-java
59+ cmake -B build \
60+ -DBUILD_SHARED_LIBS=ON \
61+ -DCMAKE_INSTALL_LIBDIR=lib \
62+ -DCMAKE_INSTALL_BINDIR=lib \
63+ -DCMAKE_INSTALL_PREFIX="$RUNNER_TOOL_CACHE/tree-sitter/lib"
64+ cmake --build build && cmake --install build --config Debug
4865 - name : Set up jextract
66+ shell : bash
4967 run : |-
50- curl -LSs '${{env.JEXTRACT_URL}}' | tar xzf - -C "$RUNNER_TOOL_CACHE"
68+ if [[ $RUNNER_OS == Linux ]]; then
69+ JEXTRACT_URL+=_linux-x64_bin.tar.gz
70+ elif [[ $RUNNER_OS == macOS ]]; then
71+ JEXTRACT_URL+=_macos-aarch64_bin.tar.gz
72+ else
73+ JEXTRACT_URL+=_windows-x64_bin.tar.gz
74+ fi
75+ curl -LSs "$JEXTRACT_URL" | tar xzf - -C "$RUNNER_TOOL_CACHE"
5176 printf '%s/jextract-22/bin\n' "$RUNNER_TOOL_CACHE" >> "$GITHUB_PATH"
5277 env :
5378 # NOTE: keep this in sync with deploy, docs
54- JEXTRACT_URL : https://download.java.net/java/early_access/jextract/22/5 /openjdk-22-jextract+5-33_linux-x64_bin.tar.gz
79+ JEXTRACT_URL : https://download.java.net/java/early_access/jextract/22/6 /openjdk-22-jextract+6-47
5580 - name : Run tests
5681 run : mvn --no-transfer-progress test
5782 - name : Patch SpotBugs SARIF report
0 commit comments