Skip to content

Commit f7473d6

Browse files
authored
ci: improve CI jobs setup (#1349)
1 parent cc943dd commit f7473d6

File tree

3 files changed

+77
-17
lines changed

3 files changed

+77
-17
lines changed
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
name: Setup pnpm and Node dependencies
2+
description: Setup pnpm, setup Node.js with pnpm cache, and install dependencies.
3+
inputs:
4+
node-version:
5+
description: Node.js version to install.
6+
required: true
7+
runs:
8+
using: composite
9+
steps:
10+
- uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # tag=v4.1.0
11+
12+
- name: Use Node.js ${{ inputs.node-version }}
13+
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # tag=v4.4.0
14+
with:
15+
node-version: ${{ inputs.node-version }}
16+
cache: pnpm
17+
18+
- name: Install dependencies
19+
shell: bash
20+
run: pnpm install --frozen-lockfile
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
name: Test Main Matrix
2+
3+
on:
4+
push:
5+
branches: [main]
6+
paths-ignore:
7+
- 'website/**'
8+
workflow_dispatch:
9+
10+
jobs:
11+
test_main_matrix:
12+
name: Tests [Node ${{ matrix.node_version }}]
13+
runs-on: ${{ matrix.os }}
14+
strategy:
15+
matrix:
16+
node_version: ['18', '20', '22', '24']
17+
os: [ubuntu-latest]
18+
19+
steps:
20+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # tag=v4.2.2
21+
- name: Setup workspace
22+
uses: ./.github/actions/setup-pnpm-node
23+
with:
24+
node-version: ${{ matrix.node_version }}
25+
26+
- name: Run tests
27+
run: pnpm test

.github/workflows/test.yml

Lines changed: 30 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Test
1+
name: CI Checks
22

33
on:
44
push:
@@ -11,32 +11,45 @@ on:
1111
workflow_dispatch:
1212

1313
jobs:
14-
verify:
15-
name: Verify [Node ${{ matrix.node_version }}]
16-
runs-on: ${{ matrix.os }}
17-
strategy:
18-
matrix:
19-
node_version: ['18', '20', '22', '24']
20-
os: [ubuntu-latest]
14+
lint:
15+
name: Lint
16+
runs-on: ubuntu-latest
2117

2218
steps:
2319
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # tag=v4.2.2
24-
- uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # tag=v4.1.0
25-
26-
- name: Use Node.js ${{ matrix.node_version }}
27-
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # tag=v4.4.0
20+
- name: Setup workspace
21+
uses: ./.github/actions/setup-pnpm-node
2822
with:
29-
node-version: ${{ matrix.node_version }}
30-
cache: 'pnpm'
31-
32-
- name: Install dependencies
33-
run: pnpm install --frozen-lockfile
23+
node-version: '24'
3424

3525
- name: Lint
3626
run: pnpm lint:ci
3727

28+
typecheck:
29+
name: TypeScript
30+
runs-on: ubuntu-latest
31+
32+
steps:
33+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # tag=v4.2.2
34+
- name: Setup workspace
35+
uses: ./.github/actions/setup-pnpm-node
36+
with:
37+
node-version: '24'
38+
3839
- name: Type check
3940
run: pnpm typecheck
4041

42+
test_pr:
43+
name: Tests
44+
if: github.event_name == 'pull_request'
45+
runs-on: ubuntu-latest
46+
47+
steps:
48+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # tag=v4.2.2
49+
- name: Setup workspace
50+
uses: ./.github/actions/setup-pnpm-node
51+
with:
52+
node-version: '24'
53+
4154
- name: Run tests
4255
run: pnpm test

0 commit comments

Comments
 (0)