Skip to content

Commit 6e9e325

Browse files
stormslowlyCopilot
andauthored
chore: split CI job for better caching (#308)
Co-authored-by: Copilot <[email protected]>
1 parent 9f8b1c7 commit 6e9e325

File tree

1 file changed

+39
-16
lines changed

1 file changed

+39
-16
lines changed

.github/workflows/ci.yml

Lines changed: 39 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -51,23 +51,24 @@ jobs:
5151
- name: Unit Test
5252
run: |
5353
go test -parallel 8 ./internal/...
54-
go-lint:
55-
name: Go Lint
54+
lint:
55+
name: Lint&Check
5656
runs-on: rspack-ubuntu-22.04-large
5757
steps:
5858
- name: Checkout code
5959
uses: actions/checkout@v4
6060
with:
6161
submodules: true
62-
- name: Setup Node
63-
uses: actions/setup-node@v4
64-
with:
65-
node-version: '24'
62+
63+
- name: Setup Node.js
64+
uses: ./.github/actions/setup-node
65+
6666
- name: Setup Go
6767
uses: ./.github/actions/setup-go
6868
with:
6969
go-version: 1.25.0
7070
cache-name: go-lint
71+
7172
- name: golangci-lint
7273
uses: golangci/golangci-lint-action@v8
7374
with:
@@ -80,6 +81,9 @@ jobs:
8081
- name: go fmt
8182
run: npm run format:go
8283

84+
- name: Check Spell
85+
run: pnpm check-spell
86+
8387
test-node:
8488
name: Test npm packages
8589
runs-on: ${{ matrix.os }}
@@ -108,7 +112,11 @@ jobs:
108112
run: pnpm format:check
109113

110114
- name: Build
111-
run: pnpm build
115+
run: pnpm -r --filter='@rslint/test-tools...' --filter='rslint...' build
116+
117+
- name: Dogfooding
118+
if: runner.os == 'Linux'
119+
run: pnpm run lint
112120

113121
- name: TypeCheck
114122
if: runner.os == 'Linux'
@@ -130,25 +138,40 @@ jobs:
130138
131139
- name: Test on Linux
132140
if: runner.os == 'Linux'
133-
run: xvfb-run -a pnpm -r test
141+
run: xvfb-run -a pnpm -r --filter='@rslint/test-tools...' --filter='rslint...' test
134142

135143
- name: Test on non-Linux
136144
if: runner.os != 'Linux'
137-
run: pnpm -r test
145+
run: pnpm -r --filter='@rslint/test-tools...' --filter='rslint...' test
138146

139-
- name: Check Spell
140-
if: runner.os == 'Linux'
141-
run: pnpm check-spell
147+
test-wasm:
148+
name: Test WASM
149+
runs-on: rspack-ubuntu-22.04-large
150+
steps:
151+
- name: Checkout code
152+
uses: actions/checkout@v4
153+
with:
154+
submodules: true
142155

143-
- name: Lint
144-
if: runner.os == 'Linux'
145-
run: pnpm run lint
156+
- name: Setup Go
157+
uses: ./.github/actions/setup-go
158+
with:
159+
go-version: 1.25.0
160+
cache-name: test-wasm
161+
162+
- name: Setup Node.js
163+
uses: ./.github/actions/setup-node
146164

165+
- name: Build
166+
run: |
167+
pnpm --filter '@rslint/core' build:js
168+
pnpm --filter '@rslint/wasm' build
147169
done:
148170
needs:
149171
- test-go
150172
- test-node
151-
- go-lint
173+
- lint
174+
- test-wasm
152175
if: always()
153176
runs-on: ubuntu-latest
154177
name: CI Done

0 commit comments

Comments
 (0)