Skip to content

Commit e83361b

Browse files
authored
Merge pull request #165 from shift-editor/ci/update-actions-and-cache-flow
Update GitHub Actions and warm perf caches
2 parents a725d17 + 6ad0a8d commit e83361b

3 files changed

Lines changed: 84 additions & 71 deletions

File tree

.github/workflows/ci.yml

Lines changed: 32 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,11 @@ jobs:
3232
rust: ${{ steps.filter.outputs.rust }}
3333
typescript: ${{ steps.filter.outputs.typescript }}
3434
steps:
35-
- uses: actions/checkout@v4
35+
- uses: actions/checkout@v7
3636
with:
3737
fetch-depth: 1
3838

39-
- uses: dorny/paths-filter@v3
39+
- uses: dorny/paths-filter@v4
4040
id: filter
4141
with:
4242
filters: |
@@ -63,19 +63,18 @@ jobs:
6363
permissions:
6464
contents: read
6565
steps:
66-
- uses: actions/checkout@v4
66+
- uses: actions/checkout@v7
6767
with:
6868
fetch-depth: 1
6969

70-
- uses: pnpm/action-setup@v4
71-
- uses: actions/setup-node@v4
70+
- uses: pnpm/action-setup@v6
71+
- uses: actions/setup-node@v7
7272
with:
7373
node-version: 24
74-
cache: pnpm
7574

7675
- name: Cache node_modules
7776
id: modules-cache
78-
uses: actions/cache@v4
77+
uses: actions/cache@v6
7978
with:
8079
path: |
8180
node_modules
@@ -100,19 +99,18 @@ jobs:
10099
permissions:
101100
contents: read
102101
steps:
103-
- uses: actions/checkout@v4
102+
- uses: actions/checkout@v7
104103
with:
105104
fetch-depth: 1
106105

107-
- uses: pnpm/action-setup@v4
108-
- uses: actions/setup-node@v4
106+
- uses: pnpm/action-setup@v6
107+
- uses: actions/setup-node@v7
109108
with:
110109
node-version: 24
111-
cache: pnpm
112110

113111
- name: Cache node_modules
114112
id: modules-cache
115-
uses: actions/cache@v4
113+
uses: actions/cache@v6
116114
with:
117115
path: |
118116
node_modules
@@ -139,19 +137,18 @@ jobs:
139137
permissions:
140138
contents: read
141139
steps:
142-
- uses: actions/checkout@v4
140+
- uses: actions/checkout@v7
143141
with:
144142
fetch-depth: 1
145143

146-
- uses: pnpm/action-setup@v4
147-
- uses: actions/setup-node@v4
144+
- uses: pnpm/action-setup@v6
145+
- uses: actions/setup-node@v7
148146
with:
149147
node-version: 24
150-
cache: pnpm
151148

152149
- name: Cache node_modules
153150
id: modules-cache
154-
uses: actions/cache@v4
151+
uses: actions/cache@v6
155152
with:
156153
path: |
157154
node_modules
@@ -169,7 +166,7 @@ jobs:
169166

170167
- name: Cache native module binary
171168
id: native-cache
172-
uses: actions/cache@v4
169+
uses: actions/cache@v6
173170
with:
174171
path: crates/shift-bridge/*.node
175172
key: native-module-${{ runner.os }}-${{ hashFiles('crates/**', 'Cargo.lock') }}
@@ -189,19 +186,18 @@ jobs:
189186
permissions:
190187
contents: read
191188
steps:
192-
- uses: actions/checkout@v4
189+
- uses: actions/checkout@v7
193190
with:
194191
fetch-depth: 1
195192

196-
- uses: pnpm/action-setup@v4
197-
- uses: actions/setup-node@v4
193+
- uses: pnpm/action-setup@v6
194+
- uses: actions/setup-node@v7
198195
with:
199196
node-version: 24
200-
cache: pnpm
201197

202198
- name: Cache node_modules
203199
id: modules-cache
204-
uses: actions/cache@v4
200+
uses: actions/cache@v6
205201
with:
206202
path: |
207203
node_modules
@@ -227,7 +223,7 @@ jobs:
227223
permissions:
228224
contents: read
229225
steps:
230-
- uses: actions/checkout@v4
226+
- uses: actions/checkout@v7
231227
with:
232228
fetch-depth: 1
233229

@@ -245,7 +241,7 @@ jobs:
245241
permissions:
246242
contents: read
247243
steps:
248-
- uses: actions/checkout@v4
244+
- uses: actions/checkout@v7
249245
with:
250246
fetch-depth: 1
251247
submodules: true
@@ -272,16 +268,15 @@ jobs:
272268
permissions:
273269
contents: read
274270
steps:
275-
- uses: actions/checkout@v4
271+
- uses: actions/checkout@v7
276272
with:
277273
fetch-depth: 1
278274
submodules: true
279275

280-
- uses: pnpm/action-setup@v4
281-
- uses: actions/setup-node@v4
276+
- uses: pnpm/action-setup@v6
277+
- uses: actions/setup-node@v7
282278
with:
283279
node-version: 24
284-
cache: pnpm
285280

286281
- name: Install toolchain
287282
run: rustup show
@@ -293,7 +288,7 @@ jobs:
293288

294289
- name: Cache node_modules
295290
id: modules-cache
296-
uses: actions/cache@v4
291+
uses: actions/cache@v6
297292
with:
298293
path: |
299294
node_modules
@@ -321,16 +316,15 @@ jobs:
321316
permissions:
322317
contents: read
323318
steps:
324-
- uses: actions/checkout@v4
319+
- uses: actions/checkout@v7
325320
with:
326321
fetch-depth: 1
327322
submodules: true
328323

329-
- uses: pnpm/action-setup@v4
330-
- uses: actions/setup-node@v4
324+
- uses: pnpm/action-setup@v6
325+
- uses: actions/setup-node@v7
331326
with:
332327
node-version: 24
333-
cache: pnpm
334328

335329
- name: Install toolchain
336330
run: rustup show
@@ -341,7 +335,7 @@ jobs:
341335

342336
- name: Cache node_modules
343337
id: modules-cache
344-
uses: actions/cache@v4
338+
uses: actions/cache@v6
345339
with:
346340
path: |
347341
node_modules
@@ -355,7 +349,7 @@ jobs:
355349

356350
- name: Cache Playwright browsers
357351
id: playwright-cache
358-
uses: actions/cache@v4
352+
uses: actions/cache@v6
359353
with:
360354
path: ~/.cache/ms-playwright
361355
key: playwright-${{ runner.os }}-${{ hashFiles('apps/desktop/node_modules/@playwright/test/package.json') }}
@@ -366,7 +360,7 @@ jobs:
366360

367361
- name: Cache native module binary
368362
id: native-cache
369-
uses: actions/cache@v4
363+
uses: actions/cache@v6
370364
with:
371365
path: crates/shift-bridge/*.node
372366
key: native-module-${{ runner.os }}-${{ hashFiles('crates/**', 'Cargo.lock') }}
@@ -382,7 +376,7 @@ jobs:
382376

383377
- name: Upload snapshots on failure
384378
if: failure()
385-
uses: actions/upload-artifact@v4
379+
uses: actions/upload-artifact@v7
386380
with:
387381
name: playwright-results
388382
path: apps/desktop/e2e/test-results/

.github/workflows/perf.yml

Lines changed: 41 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -72,15 +72,14 @@ jobs:
7272
permissions:
7373
contents: read
7474
steps:
75-
- uses: actions/checkout@v4
75+
- uses: actions/checkout@v7
7676
with:
7777
fetch-depth: 1
7878

79-
- uses: pnpm/action-setup@v4
80-
- uses: actions/setup-node@v4
79+
- uses: pnpm/action-setup@v6
80+
- uses: actions/setup-node@v7
8181
with:
8282
node-version: 24
83-
cache: pnpm
8483

8584
- name: Install toolchain
8685
run: rustup show
@@ -91,7 +90,7 @@ jobs:
9190

9291
- name: Cache node_modules
9392
id: modules-cache
94-
uses: actions/cache@v4
93+
uses: actions/cache@v6
9594
with:
9695
path: |
9796
node_modules
@@ -105,7 +104,7 @@ jobs:
105104

106105
- name: Cache native module binary
107106
id: native-cache
108-
uses: actions/cache@v4
107+
uses: actions/cache@v6
109108
with:
110109
path: crates/shift-bridge/*.node
111110
key: native-module-${{ runner.os }}-${{ hashFiles('crates/**', 'Cargo.lock') }}
@@ -123,16 +122,15 @@ jobs:
123122
permissions:
124123
contents: read
125124
steps:
126-
- uses: actions/checkout@v4
125+
- uses: actions/checkout@v7
127126
with:
128127
fetch-depth: 1
129128
submodules: true
130129

131-
- uses: pnpm/action-setup@v4
132-
- uses: actions/setup-node@v4
130+
- uses: pnpm/action-setup@v6
131+
- uses: actions/setup-node@v7
133132
with:
134133
node-version: 24
135-
cache: pnpm
136134

137135
- name: Install toolchain
138136
run: rustup show
@@ -141,9 +139,9 @@ jobs:
141139
with:
142140
shared-key: shift-rust-macos
143141

144-
- name: Cache node_modules
142+
- name: Restore node_modules
145143
id: modules-cache
146-
uses: actions/cache@v4
144+
uses: actions/cache/restore@v6
147145
with:
148146
path: |
149147
node_modules
@@ -155,9 +153,20 @@ jobs:
155153
- name: Install dependencies
156154
run: pnpm install --frozen-lockfile --prefer-offline
157155

158-
- name: Cache Playwright browsers
156+
- name: Save node_modules
157+
if: steps.modules-cache.outputs.cache-hit != 'true'
158+
uses: actions/cache/save@v6
159+
with:
160+
path: |
161+
node_modules
162+
apps/*/node_modules
163+
packages/*/node_modules
164+
crates/*/node_modules
165+
key: ${{ steps.modules-cache.outputs.cache-primary-key }}
166+
167+
- name: Restore Playwright browsers
159168
id: playwright-cache
160-
uses: actions/cache@v4
169+
uses: actions/cache/restore@v6
161170
with:
162171
path: ~/Library/Caches/ms-playwright
163172
key: playwright-${{ runner.os }}-${{ hashFiles('apps/desktop/node_modules/@playwright/test/package.json') }}
@@ -166,9 +175,16 @@ jobs:
166175
if: steps.playwright-cache.outputs.cache-hit != 'true'
167176
run: pnpm --filter @shift/desktop exec playwright install
168177

169-
- name: Cache native module binary
178+
- name: Save Playwright browsers
179+
if: steps.playwright-cache.outputs.cache-hit != 'true'
180+
uses: actions/cache/save@v6
181+
with:
182+
path: ~/Library/Caches/ms-playwright
183+
key: ${{ steps.playwright-cache.outputs.cache-primary-key }}
184+
185+
- name: Restore native module binary
170186
id: native-cache
171-
uses: actions/cache@v4
187+
uses: actions/cache/restore@v6
172188
with:
173189
path: crates/shift-bridge/*.node
174190
key: native-module-${{ runner.os }}-${{ hashFiles('crates/**', 'Cargo.lock') }}
@@ -177,6 +193,13 @@ jobs:
177193
if: steps.native-cache.outputs.cache-hit != 'true'
178194
run: pnpm build:native
179195

196+
- name: Save native module binary
197+
if: steps.native-cache.outputs.cache-hit != 'true'
198+
uses: actions/cache/save@v6
199+
with:
200+
path: crates/shift-bridge/*.node
201+
key: ${{ steps.native-cache.outputs.cache-primary-key }}
202+
180203
- name: Build E2E app
181204
run: pnpm --filter @shift/desktop build:e2e
182205

@@ -185,15 +208,15 @@ jobs:
185208

186209
- name: Upload Playwright failures
187210
if: failure()
188-
uses: actions/upload-artifact@v4
211+
uses: actions/upload-artifact@v7
189212
with:
190213
name: playwright-gpu-results
191214
path: apps/desktop/e2e/test-results/
192215
retention-days: 7
193216

194217
- name: Upload perf results
195218
if: always()
196-
uses: actions/upload-artifact@v4
219+
uses: actions/upload-artifact@v7
197220
with:
198221
name: perf-results
199222
path: apps/desktop/e2e/perf-results/

0 commit comments

Comments
 (0)