@@ -30,7 +30,8 @@ concurrency:
30
30
31
31
env :
32
32
DEFAULT_BRANCH : ${{ github.event.repository.default_branch }}
33
- NODE_VERSION : 18
33
+ NODE_VERSION_TEST : 18
34
+ NODE_VERSION_BUILD : 20
34
35
DRY_RUN : true
35
36
TEST_LEGACY_DECRYPTION : true
36
37
SPARSE_CHECKOUT : |-
@@ -105,13 +106,13 @@ jobs:
105
106
with :
106
107
repo : ${{ github.event.repository.full_name }}
107
108
token : ${{ github.token }}
108
- node-version : ${{ env.NODE_VERSION }}
109
+ node-version : ${{ env.NODE_VERSION_TEST }}
109
110
110
- - name : Prefetch modules for `ubuntu-latest`
111
+ - name : Prefetch test modules for `ubuntu-latest`
111
112
id : setup-node
112
113
uses : ./.github/actions/setup-node
113
114
with :
114
- node-version : ${{ env.NODE_VERSION }}
115
+ node-version : ${{ env.NODE_VERSION_TEST }}
115
116
os : ${{ runner.os }}
116
117
save-cache : true
117
118
@@ -124,6 +125,27 @@ jobs:
124
125
run : |
125
126
echo "$(pnpm -s schedule-test-shards)" >> "$GITHUB_OUTPUT"
126
127
128
+ setup-build :
129
+ runs-on : ubuntu-latest
130
+
131
+ outputs :
132
+ node-version : ${{ env.NODE_VERSION_BUILD }}
133
+
134
+ steps :
135
+ - name : Checkout code
136
+ uses : actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
137
+ with :
138
+ filter : blob:none # we don't need all blobs
139
+ sparse-checkout : ${{ env.SPARSE_CHECKOUT }}
140
+ show-progress : false
141
+
142
+ - name : Prefetch build modules for `ubuntu-latest`
143
+ uses : ./.github/actions/setup-node
144
+ with :
145
+ node-version : ${{ env.NODE_VERSION_BUILD }}
146
+ os : ${{ runner.os }}
147
+ save-cache : true
148
+
127
149
prefetch :
128
150
needs : [setup]
129
151
@@ -142,7 +164,6 @@ jobs:
142
164
strategy :
143
165
matrix :
144
166
os : ${{ fromJSON(needs.setup.outputs.os-matrix-prefetch) }}
145
- node-version : [18]
146
167
147
168
runs-on : ${{ matrix.os }}
148
169
@@ -161,12 +182,13 @@ jobs:
161
182
if : needs.setup.outputs.os-matrix-is-full && runner.os != 'Linux'
162
183
uses : ./.github/actions/setup-node
163
184
with :
164
- node-version : ${{ env.NODE_VERSION }}
185
+ node-version : ${{ env.NODE_VERSION_TEST }}
165
186
os : ${{ runner.os }}
166
187
save-cache : true
167
188
168
189
lint-eslint :
169
- needs : [setup]
190
+ needs :
191
+ - setup-build
170
192
runs-on : ubuntu-latest
171
193
timeout-minutes : 15
172
194
@@ -182,7 +204,7 @@ jobs:
182
204
- name : Setup Node.js
183
205
uses : ./.github/actions/setup-node
184
206
with :
185
- node-version : ${{ env.NODE_VERSION }}
207
+ node-version : ${{ needs.setup-build.outputs.node-version }}
186
208
os : ${{ runner.os }}
187
209
188
210
- name : Restore eslint cache
@@ -211,7 +233,8 @@ jobs:
211
233
key : eslint-main-cache
212
234
213
235
lint-prettier :
214
- needs : [setup]
236
+ needs :
237
+ - setup-build
215
238
runs-on : ubuntu-latest
216
239
timeout-minutes : 7
217
240
@@ -227,7 +250,7 @@ jobs:
227
250
- name : Setup Node.js
228
251
uses : ./.github/actions/setup-node
229
252
with :
230
- node-version : ${{ env.NODE_VERSION }}
253
+ node-version : ${{ needs.setup-build.outputs.node-version }}
231
254
os : ${{ runner.os }}
232
255
233
256
- name : Restore prettier cache
@@ -256,7 +279,8 @@ jobs:
256
279
key : prettier-main-cache
257
280
258
281
lint-docs :
259
- needs : [setup]
282
+ needs :
283
+ - setup-build
260
284
runs-on : ubuntu-latest
261
285
timeout-minutes : 7
262
286
@@ -269,7 +293,7 @@ jobs:
269
293
- name : Setup Node.js
270
294
uses : ./.github/actions/setup-node
271
295
with :
272
- node-version : ${{ env.NODE_VERSION }}
296
+ node-version : ${{ needs.setup-build.outputs.node-version }}
273
297
os : ${{ runner.os }}
274
298
275
299
- name : Lint markdown
@@ -285,7 +309,8 @@ jobs:
285
309
run : pnpm markdown-lint
286
310
287
311
lint-other :
288
- needs : [setup]
312
+ needs :
313
+ - setup-build
289
314
runs-on : ubuntu-latest
290
315
timeout-minutes : 7
291
316
@@ -298,7 +323,7 @@ jobs:
298
323
- name : Setup Node.js
299
324
uses : ./.github/actions/setup-node
300
325
with :
301
- node-version : ${{ env.NODE_VERSION }}
326
+ node-version : ${{ needs.setup-build.outputs.node-version }}
302
327
os : ${{ runner.os }}
303
328
304
329
- name : Type check
@@ -337,7 +362,7 @@ jobs:
337
362
- name : Setup Node.js
338
363
uses : ./.github/actions/setup-node
339
364
with :
340
- node-version : ${{ env.NODE_VERSION }}
365
+ node-version : ${{ env.NODE_VERSION_TEST }}
341
366
os : ${{ runner.os }}
342
367
343
368
- name : Cache jest
@@ -348,7 +373,7 @@ jobs:
348
373
jest-cache-${{
349
374
runner.os
350
375
}}-${{
351
- env.NODE_VERSION
376
+ env.NODE_VERSION_TEST
352
377
}}-${{
353
378
hashFiles('pnpm-lock.yaml')
354
379
}}-${{
@@ -416,6 +441,7 @@ jobs:
416
441
coverage-threshold :
417
442
needs :
418
443
- test
444
+ - setup-build
419
445
runs-on : ubuntu-latest
420
446
timeout-minutes : 3
421
447
if : (success() || failure()) && github.event.pull_request.draft != true
@@ -430,7 +456,7 @@ jobs:
430
456
- name : Setup Node.js
431
457
uses : ./.github/actions/setup-node
432
458
with :
433
- node-version : ${{ env.NODE_VERSION }}
459
+ node-version : ${{ needs.setup-build.outputs.node-version }}
434
460
os : ${{ runner.os }}
435
461
436
462
- name : Download coverage reports
@@ -505,7 +531,8 @@ jobs:
505
531
run : exit 1
506
532
507
533
build :
508
- needs : setup
534
+ needs :
535
+ - setup-build
509
536
runs-on : ubuntu-latest
510
537
timeout-minutes : 15
511
538
if : github.event.pull_request.draft != true
@@ -518,7 +545,7 @@ jobs:
518
545
- name : Setup Node.js
519
546
uses : ./.github/actions/setup-node
520
547
with :
521
- node-version : ${{ env.NODE_VERSION }}
548
+ node-version : ${{ needs.setup-build.outputs.node-version }}
522
549
os : ${{ runner.os }}
523
550
524
551
- name : Build
@@ -539,7 +566,9 @@ jobs:
539
566
path : renovate-0.0.0-semantic-release.tgz
540
567
541
568
build-docs :
542
- needs : [lint-docs]
569
+ needs :
570
+ - lint-docs
571
+ - setup-build
543
572
runs-on : ubuntu-latest
544
573
timeout-minutes : 5
545
574
if : github.event.pull_request.draft != true
@@ -552,7 +581,7 @@ jobs:
552
581
- name : Setup Node.js
553
582
uses : ./.github/actions/setup-node
554
583
with :
555
- node-version : ${{ env.NODE_VERSION }}
584
+ node-version : ${{ needs.setup-build.outputs.node-version }}
556
585
os : ${{ runner.os }}
557
586
558
587
- name : Build
@@ -588,7 +617,7 @@ jobs:
588
617
- name : Setup Node.js
589
618
uses : actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
590
619
with :
591
- node-version : ${{ env.NODE_VERSION }}
620
+ node-version : ${{ env.NODE_VERSION_TEST }}
592
621
593
622
- name : Download package
594
623
uses : actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
@@ -603,7 +632,7 @@ jobs:
603
632
604
633
release :
605
634
needs :
606
- - setup
635
+ - setup-build
607
636
- lint-eslint
608
637
- lint-prettier
609
638
- lint-docs
@@ -639,7 +668,7 @@ jobs:
639
668
- name : Setup Node.js
640
669
uses : ./.github/actions/setup-node
641
670
with :
642
- node-version : ${{ env.NODE_VERSION }}
671
+ node-version : ${{ needs.setup-build.outputs.node-version }}
643
672
os : ${{ runner.os }}
644
673
645
674
- uses : sigstore/cosign-installer@59acb6260d9c0ba8f4a2f9d9b48431a222b68e20 # v3.5.0
0 commit comments