Skip to content

Commit e2510ed

Browse files
committed
[WIP] better parallelization
Signed-off-by: David Thompson <davthomp@redhat.com>
1 parent f0c9738 commit e2510ed

File tree

3 files changed

+73
-58
lines changed

3 files changed

+73
-58
lines changed

.github/workflows/ci.yaml

Lines changed: 13 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -16,72 +16,28 @@ jobs:
1616
- name: Run ESLint
1717
run: npm run eslint
1818

19-
build-test-native-image:
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-
- label: linux-aarch64
28-
os: ubuntu-24.04-arm
29-
opt: -Dgraalvm.static=-H:+StaticExecutableWithDynamicLibC
30-
- label: osx-x86_64
31-
os: macos-13
32-
- label: osx-aarch64
33-
os: macos-latest
34-
runs-on: ${{ matrix.os }}
35-
steps:
36-
- uses: actions/checkout@v4
37-
with:
38-
repository: 'eclipse/lemminx'
39-
- uses: graalvm/setup-graalvm@557ffcf459751b4d92319ee255bf3bec9b73964c #v1.2.5
40-
with:
41-
distribution: graalvm-community
42-
java-version: 17
43-
- run: ./mvnw -B package -Dnative -DskipTests ${{ matrix.opt }} -Dcbi.jarsigner.skip=true
44-
- run: mv org.eclipse.lemminx/target/lemminx-* lemminx-${{ matrix.label }}
45-
- uses: actions/upload-artifact@v4
46-
with:
47-
name: lemminx-${{ matrix.label }}
48-
path: lemminx-${{ matrix.label }}
49-
if-no-files-found: error
50-
51-
smoke-test:
19+
matrix-smoke-test:
5220
strategy:
5321
fail-fast: false
5422
matrix:
55-
label: [linux-x86_64, linux-aarch64, osx-x86_64, osx-aarch64]
23+
label: [linux-x86_64, linux-aarch_64, osx-x86_64, osx-aarch_64]
5624
include:
5725
- label: linux-x86_64
5826
os: ubuntu-latest
5927
startx: xvfb-run
60-
- label: linux-aarch64
28+
graalOpt: -Dgraalvm.static=-H:+StaticExecutableWithDynamicLibC
29+
- label: linux-aarch_64
6130
os: ubuntu-24.04-arm
6231
startx: xvfb-run
32+
graalOpt: -Dgraalvm.static=-H:+StaticExecutableWithDynamicLibC
6333
- label: osx-x86_64
6434
os: macos-13
65-
- label: osx-aarch64
35+
- label: osx-aarch_64
6636
os: macos-latest
67-
runs-on: ${{ matrix.os }}
68-
needs: build-test-native-image
69-
steps:
70-
- uses: actions/checkout@v4
71-
- uses: actions/download-artifact@v4
72-
with:
73-
name: lemminx-${{ matrix.label }}
74-
path: server
75-
- name: Make lemminx binary executable
76-
run: chmod u+x ./server/lemminx-${{ matrix.label }}
77-
- name: Make lemminx binary trusted
78-
run: openssl sha256 ./server/lemminx-${{ matrix.label }} | awk '{print $2}' > ./server/lemminx-${{ matrix.label }}.sha256
79-
- name: Install dependencies
80-
run: npm i --also=dev
81-
- name: Run smoke test suite
82-
run: ${{ matrix.startx }} npm test
83-
- name: Delete lemminx binary
84-
if: always()
85-
uses: geekyeggo/delete-artifact@e46cfb9575865f907c2beb2e4170b5f4c7d77c52
86-
with:
87-
name: lemminx-${{ matrix.label }}
37+
uses: ./.github/workflows/smoke-test.yaml
38+
with:
39+
os: ${{ matrix.os }}
40+
label: ${{ matrix.label }}
41+
graalOpt: ${{ matrix.graalOpt }}
42+
startx: ${{ matrix.startx }}
43+
secrets: inherit

.github/workflows/smoke-test.yaml

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
name: Smoke test
2+
3+
on:
4+
workflow_call:
5+
inputs:
6+
os:
7+
required: true
8+
type: string
9+
label:
10+
required: true
11+
type: string
12+
graalOpt:
13+
required: false
14+
type: string
15+
startx:
16+
required: false
17+
type: string
18+
19+
jobs:
20+
build-test-native-image:
21+
runs-on: ${{ inputs.os }}
22+
steps:
23+
- uses: actions/checkout@v4
24+
with:
25+
repository: 'eclipse/lemminx'
26+
- uses: graalvm/setup-graalvm@557ffcf459751b4d92319ee255bf3bec9b73964c #v1.2.5
27+
with:
28+
distribution: graalvm-community
29+
java-version: 17
30+
- run: ./mvnw -B package -Dnative -DskipTests ${{ inputs.graalOpt }} -Dcbi.jarsigner.skip=true
31+
- run: mv org.eclipse.lemminx/target/lemminx-* lemminx-${{ inputs.label }}
32+
- uses: actions/upload-artifact@v4
33+
with:
34+
name: lemminx-${{ inputs.label }}
35+
path: lemminx-${{ inputs.label }}
36+
if-no-files-found: error
37+
38+
smoke-test:
39+
runs-on: ${{ inputs.os }}
40+
needs: build-test-native-image
41+
steps:
42+
- uses: actions/checkout@v4
43+
- uses: actions/download-artifact@v4
44+
with:
45+
name: lemminx-${{ inputs.label }}
46+
path: server
47+
- name: Make lemminx binary executable
48+
run: chmod u+x ./server/lemminx-${{ inputs.label }}
49+
- name: Make lemminx binary trusted
50+
run: openssl sha256 ./server/lemminx-${{ inputs.label }} | awk '{print $2}' > ./server/lemminx-${{ inputs.label }}.sha256
51+
- name: Install dependencies
52+
run: npm i --also=dev
53+
- name: Run smoke test suite
54+
run: ${{ inputs.startx }} npm test
55+
- name: Delete lemminx binary
56+
if: always()
57+
uses: geekyeggo/delete-artifact@e46cfb9575865f907c2beb2e4170b5f4c7d77c52
58+
with:
59+
name: lemminx-${{ inputs.label }}

src/server/binary/binaryServerStarter.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ function getServerBinaryNameWithoutExtension(): string {
223223
case 'linux':
224224
switch (os.arch()) {
225225
case 'arm64':
226-
return 'lemminx-linux-aarch64';
226+
return 'lemminx-linux-aarch_64';
227227
default:
228228
return 'lemminx-linux-x86_64';
229229
}

0 commit comments

Comments
 (0)