1717 run : npm run eslint
1818
1919 build-test-native-image :
20- runs-on : ubuntu-latest
20+ strategy :
21+ matrix :
22+ label : [linux-x86_64, linux-aarch64, osx-x86_64, osx-aarch64]
23+ include :
24+ - label : linux-x86_64
25+ os : ubuntu-latest
26+ opt : -Dgraalvm.static=-H:+StaticExecutableWithDynamicLibC
27+ startx : xvfb-run
28+ - label : linux-aarch64
29+ os : ubuntu-24.04-arm
30+ opt : -Dgraalvm.static=-H:+StaticExecutableWithDynamicLibC
31+ startx : xvfb-run
32+ - label : osx-x86_64
33+ os : macos-13
34+ - label : osx-aarch64
35+ os : macos-latest
36+ runs-on : ${{ matrix.os }}
2137 steps :
2238 - uses : actions/checkout@v4
2339 with :
@@ -26,33 +42,47 @@ jobs:
2642 with :
2743 distribution : graalvm-community
2844 java-version : 17
29- - run : ./mvnw -B package -Dnative -DskipTests -Dgraalvm.static=-H:+StaticExecutableWithDynamicLibC -Dcbi.jarsigner.skip=true
30- - run : mv org.eclipse.lemminx/target/lemminx-* lemminx-linux
45+ - run : ./mvnw -B package -Dnative -DskipTests ${{ matrix.opt }} -Dcbi.jarsigner.skip=true
46+ - run : mv org.eclipse.lemminx/target/lemminx-* lemminx-${{ matrix.label }}
3147 - uses : actions/upload-artifact@v4
3248 with :
33- name : lemminx-linux
34- path : lemminx-linux
49+ name : lemminx-${{ matrix.label }}
50+ path : lemminx-${{ matrix.label }}
3551 if-no-files-found : error
3652
3753 smoke-test :
38- runs-on : ubuntu-latest
54+ strategy :
55+ matrix :
56+ label : [linux-x86_64, linux-aarch64, osx-x86_64, osx-aarch64]
57+ include :
58+ - label : linux-x86_64
59+ os : ubuntu-latest
60+ opt : -Dgraalvm.static=-H:+StaticExecutableWithDynamicLibC
61+ - label : linux-aarch64
62+ os : ubuntu-24.04-arm
63+ opt : -Dgraalvm.static=-H:+StaticExecutableWithDynamicLibC
64+ - label : osx-x86_64
65+ os : macos-13
66+ - label : osx-aarch64
67+ os : macos-latest
68+ runs-on : ${{ matrix.os }}
3969 needs : build-test-native-image
4070 steps :
4171 - uses : actions/checkout@v4
4272 - uses : actions/download-artifact@v4
4373 with :
44- name : lemminx-linux
74+ name : lemminx-${{ matrix.label }}
4575 path : server
4676 - name : Make lemminx binary executable
47- run : chmod u+x ./server/lemminx-linux
77+ run : chmod u+x ./server/lemminx-${{ matrix.label }}
4878 - name : Make lemminx binary trusted
49- run : sha256sum ./server/lemminx-linux > ./server/lemminx-linux .sha256
79+ run : openssl sha256 ./server/lemminx-${{ matrix.label }} | awk '{print $2}' > ./server/lemminx-${{ matrix.label }} .sha256
5080 - name : Install dependencies
5181 run : npm i --also=dev
5282 - name : Run smoke test suite
53- run : xvfb-run npm test
83+ run : ${{ matrix.startx }} npm test
5484 - name : Delete lemminx binary
5585 if : always()
5686 uses : geekyeggo/delete-artifact@e46cfb9575865f907c2beb2e4170b5f4c7d77c52
5787 with :
58- name : lemminx-linux
88+ name : lemminx-${{ matrix.label }}
0 commit comments