Skip to content

Commit aa83175

Browse files
Merge pull request #509 from pimlicolabs/claude/funny-lichterman
ci: optimize PR workflow with caching and parallel jobs
2 parents ba5ce2a + cc382a9 commit aa83175

9 files changed

Lines changed: 166 additions & 44 deletions

File tree

.github/actions/install-dependencies/action.yml

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,30 @@
11
name: "Install dependencies"
22
description: "Prepare repository and all dependencies"
33

4+
inputs:
5+
install-foundry:
6+
description: "Whether to install Foundry toolchain (only needed for E2E tests)"
7+
required: false
8+
default: "false"
9+
410
runs:
511
using: "composite"
612
steps:
713
- name: Set up Bun
8-
uses: oven-sh/setup-bun@v1
14+
uses: oven-sh/setup-bun@v2
15+
with:
16+
bun-version: latest
17+
18+
- name: Cache Bun dependencies
19+
uses: actions/cache@v5
920
with:
10-
bun-version: 1.0.30
21+
path: ~/.bun/install/cache
22+
key: bun-${{ runner.os }}-${{ hashFiles('bun.lock') }}
23+
restore-keys: |
24+
bun-${{ runner.os }}-
1125
1226
- name: Set up foundry
27+
if: inputs.install-foundry == 'true'
1328
uses: foundry-rs/foundry-toolchain@v1
1429

1530
- name: Install dependencies

.github/workflows/on-pull-request.yml

Lines changed: 44 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,43 @@ concurrency:
88
cancel-in-progress: true
99

1010
jobs:
11-
verify:
12-
name: Verify
13-
uses: ./.github/workflows/verify.yml
11+
lint:
12+
name: Lint
13+
runs-on: ubuntu-latest
14+
timeout-minutes: 5
15+
16+
steps:
17+
- name: Clone repository
18+
uses: actions/checkout@v6
19+
20+
- name: Install dependencies
21+
uses: ./.github/actions/install-dependencies
22+
23+
- name: Lint code
24+
run: bun format && bun lint:fix
25+
26+
- uses: stefanzweifel/git-auto-commit-action@v7
27+
env:
28+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
29+
with:
30+
commit_message: 'chore: format'
31+
commit_user_name: 'github-actions[bot]'
32+
commit_user_email: 'github-actions[bot]@users.noreply.github.com'
33+
34+
build:
35+
name: Build
36+
runs-on: ubuntu-latest
37+
timeout-minutes: 15
38+
39+
steps:
40+
- name: Clone repository
41+
uses: actions/checkout@v6
42+
43+
- name: Install dependencies
44+
uses: ./.github/actions/install-dependencies
45+
46+
- name: Build
47+
run: bun run build
1448

1549
docker-e2e:
1650
name: E2E-Coverage
@@ -19,17 +53,17 @@ jobs:
1953

2054
steps:
2155
- name: Checkout
22-
uses: actions/checkout@v4
56+
uses: actions/checkout@v6
2357

2458
- name: Install dependencies
2559
uses: ./.github/actions/install-dependencies
60+
with:
61+
install-foundry: 'true'
2662

27-
- uses: actions/setup-node@v4
63+
- uses: actions/setup-node@v6
2864
with:
2965
node-version: "v22.2.0"
3066

31-
- name: Build
32-
run: bun run build
3367
- name: Create .env file
3468
run: |
3569
echo "VITE_FORK_RPC_URL=${{ secrets.VITE_FORK_RPC_URL }}" > .env.test
@@ -38,7 +72,7 @@ jobs:
3872
run: bun run test:ci
3973

4074
- name: Upload coverage reports to Codecov
41-
uses: codecov/codecov-action@v3
75+
uses: codecov/codecov-action@v5
4276
env:
4377
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
4478

@@ -49,7 +83,7 @@ jobs:
4983

5084
steps:
5185
- name: Clone repository
52-
uses: actions/checkout@v4
86+
uses: actions/checkout@v6
5387

5488
- name: Install dependencies
5589
uses: ./.github/actions/install-dependencies
@@ -59,3 +93,4 @@ jobs:
5993
with:
6094
github_token: ${{ secrets.GITHUB_TOKEN }}
6195
package_manager: bun
96+
build_script: build:size

.github/workflows/on-push-to-main.yml

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ concurrency:
88
group: ${{ github.workflow }}-${{ github.ref }}
99
cancel-in-progress: true
1010

11+
env:
12+
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
13+
1114
jobs:
1215
changesets:
1316
name: Changesets
@@ -16,7 +19,7 @@ jobs:
1619

1720
steps:
1821
- name: Clone repository
19-
uses: actions/checkout@v4
22+
uses: actions/checkout@v6
2023
with:
2124
# This makes Actions fetch all Git history so that Changesets can generate changelogs with the correct commits
2225
fetch-depth: 0
@@ -43,13 +46,13 @@ jobs:
4346

4447
steps:
4548
- name: Clone repository
46-
uses: actions/checkout@v4
49+
uses: actions/checkout@v6
4750

4851
- name: Install dependencies
4952
uses: ./.github/actions/install-dependencies
5053

5154
- name: Setup .npmrc file
52-
uses: actions/setup-node@v4
55+
uses: actions/setup-node@v6
5356
with:
5457
node-version: '24'
5558
registry-url: 'https://registry.npmjs.org'
@@ -72,13 +75,13 @@ jobs:
7275

7376
steps:
7477
- name: Clone repository
75-
uses: actions/checkout@v4
78+
uses: actions/checkout@v6
7679

7780
- name: Install dependencies
7881
uses: ./.github/actions/install-dependencies
7982

8083
- name: Setup .npmrc file
81-
uses: actions/setup-node@v4
84+
uses: actions/setup-node@v6
8285
with:
8386
node-version: '24'
8487
registry-url: 'https://registry.npmjs.org'

.github/workflows/prune-tags.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,14 @@ jobs:
1010
runs-on: ubuntu-latest
1111
steps:
1212
- name: Clone repository
13-
uses: actions/checkout@v4
13+
uses: actions/checkout@v6
1414

15-
- uses: actions/setup-node@v4
15+
- uses: actions/setup-node@v6
1616
with:
1717
node-version: 'latest'
1818

1919
- name: Setup .npmrc file
20-
uses: actions/setup-node@v4
20+
uses: actions/setup-node@v6
2121
with:
2222
registry-url: 'https://registry.npmjs.org'
2323

.github/workflows/verify.yml

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,15 @@ jobs:
1111

1212
steps:
1313
- name: Clone repository
14-
uses: actions/checkout@v4
14+
uses: actions/checkout@v6
1515

1616
- name: Install dependencies
1717
uses: ./.github/actions/install-dependencies
1818

1919
- name: Lint code
2020
run: bun format && bun lint:fix
2121

22-
- uses: stefanzweifel/git-auto-commit-action@v5
22+
- uses: stefanzweifel/git-auto-commit-action@v7
2323
env:
2424
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
2525
with:
@@ -29,13 +29,12 @@ jobs:
2929

3030
build:
3131
name: Build
32-
needs: lint
3332
runs-on: ubuntu-latest
3433
timeout-minutes: 15
3534

3635
steps:
3736
- name: Clone repository
38-
uses: actions/checkout@v4
37+
uses: actions/checkout@v6
3938

4039
- name: Install dependencies
4140
uses: ./.github/actions/install-dependencies
@@ -55,7 +54,7 @@ jobs:
5554

5655
steps:
5756
- name: Clone repository
58-
uses: actions/checkout@v4
57+
uses: actions/checkout@v6
5958

6059
- name: Install dependencies
6160
uses: ./.github/actions/install-dependencies
@@ -86,7 +85,7 @@ jobs:
8685
total-shards: [3]
8786
steps:
8887
- name: Clone repository
89-
uses: actions/checkout@v4
88+
uses: actions/checkout@v6
9089

9190
- name: Install dependencies
9291
uses: ./.github/actions/install-dependencies
@@ -109,6 +108,6 @@ jobs:
109108
VITE_NETWORK_TRANSPORT_MODE: ${{ matrix.transport-mode }}
110109

111110
- name: Upload coverage reports to Codecov
112-
uses: codecov/codecov-action@v3
111+
uses: codecov/codecov-action@v5
113112
with:
114113
token: ${{ secrets.CODECOV_TOKEN }}

bun.lock

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)