Skip to content

Commit b8ae47b

Browse files
committed
[WIP] matrix build for smoke tests
This lets us smoke test the binaries for every platform instead of just linux x86_64. Signed-off-by: David Thompson <davthomp@redhat.com>
1 parent 9e06486 commit b8ae47b

File tree

2 files changed

+49
-10
lines changed

2 files changed

+49
-10
lines changed

.github/workflows/ci.yaml

Lines changed: 42 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,23 @@ jobs:
1717
run: npm run eslint
1818

1919
build-test-native-image:
20-
runs-on: ubuntu-latest
20+
strategy:
21+
matrix:
22+
labels: [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+
- label: linux-aarch64
28+
os: ubuntu-latest-arm
29+
opt: -Dgraalvm.static=-H:+StaticExecutableWithDynamicLibC
30+
- label: osx-x86_64
31+
os: macos-13
32+
opt: -Dgraalvm.static=
33+
- label: osx-aarch64
34+
os: macos-latest
35+
opt: -Dgraalvm.static=
36+
runs-on: ${{ matrix.os }}
2137
steps:
2238
- uses: actions/checkout@v4
2339
with:
@@ -26,27 +42,43 @@ 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+
labels: [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-latest-arm
63+
opt: -Dgraalvm.static=-H:+StaticExecutableWithDynamicLibC
64+
- label: osx-x86_64
65+
os: macos-13
66+
opt: -Dgraalvm.static=
67+
- label: osx-aarch64
68+
os: macos-latest
69+
opt: -Dgraalvm.static=
70+
runs-on: ${{ matrix.os }}
3971
needs: build-test-native-image
4072
steps:
4173
- uses: actions/checkout@v4
4274
- uses: actions/download-artifact@v4
4375
with:
44-
name: lemminx-linux
76+
name: lemminx-${{ matrix.label }}
4577
path: server
4678
- name: Make lemminx binary executable
47-
run: chmod u+x ./server/lemminx-linux
79+
run: chmod u+x ./server/lemminx-${{ matrix.label }}
4880
- name: Make lemminx binary trusted
49-
run: sha256sum ./server/lemminx-linux > ./server/lemminx-linux.sha256
81+
run: sha256sum ./server/lemminx-${{ matrix.label }} > ./server/lemminx-${{ matrix.label }}.sha256
5082
- name: Install dependencies
5183
run: npm i --also=dev
5284
- name: Run smoke test suite
@@ -55,4 +87,4 @@ jobs:
5587
if: always()
5688
uses: geekyeggo/delete-artifact@e46cfb9575865f907c2beb2e4170b5f4c7d77c52
5789
with:
58-
name: lemminx-linux
90+
name: lemminx-${{ matrix.label }}

src/server/binary/binaryServerStarter.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,13 @@ function getServerBinaryNameWithoutExtension(): string {
220220
default:
221221
return 'lemminx-osx-x86_64';
222222
}
223+
case 'linux':
224+
switch (os.arch()) {
225+
case 'arm64':
226+
return 'lemminx-linux-aarch64';
227+
default:
228+
return 'lemminx-linux-x86_64';
229+
}
223230
default:
224231
return `lemminx-${os.platform()}`;
225232
}

0 commit comments

Comments
 (0)