authorgravatar for me@t3.ggTheo Browne <me@t3.gg> 2026-07-30 11:25:31-07:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2026-07-30 14:25:31-04:00
loge4829603ff70bdeac96780e1512ac2c09638e5a3
tree05fa22e21c654ef8be1fcc78c19a08934d03837c
parent1d77cec991971d3113918e896b1c871e8b044da7
signature Signed by PGP key B5690EEEBB952194

perf(ci): cut stale runs and redundant setup (#4802)


6 files changed, 126 insertions(+), 14 deletions(-)

.github/workflows/ci.yml+31-3
...@@ -6,6 +6,10 @@ on:...@@ -6,6 +6,10 @@ on:
6 branches:6 branches:
7 - main7 - main
88
9concurrency:
10 group: ci-${{ github.event.pull_request.number || github.sha }}
11 cancel-in-progress: ${{ github.event_name == 'pull_request' }}
12
9jobs:13jobs:
10 check:14 check:
11 name: Check15 name: Check
...@@ -14,6 +18,11 @@ jobs:...@@ -14,6 +18,11 @@ jobs:
14 steps:18 steps:
15 - name: Checkout19 - name: Checkout
16 uses: actions/checkout@v620 uses: actions/checkout@v6
21 with:
22 sparse-checkout: |
23 /*
24 !/.repos/
25 sparse-checkout-cone-mode: false
1726
18 - name: Setup Vite+27 - name: Setup Vite+
19 uses: voidzero-dev/setup-vp@v128 uses: voidzero-dev/setup-vp@v1
...@@ -55,6 +64,11 @@ jobs:...@@ -55,6 +64,11 @@ jobs:
55 steps:64 steps:
56 - name: Checkout65 - name: Checkout
57 uses: actions/checkout@v666 uses: actions/checkout@v6
67 with:
68 sparse-checkout: |
69 /*
70 !/.repos/
71 sparse-checkout-cone-mode: false
5872
59 - name: Setup Vite+73 - name: Setup Vite+
60 uses: voidzero-dev/setup-vp@v174 uses: voidzero-dev/setup-vp@v1
...@@ -77,18 +91,25 @@ jobs:...@@ -77,18 +91,25 @@ jobs:
7791
78 mobile_native_static_analysis:92 mobile_native_static_analysis:
79 name: Mobile Native Static Analysis93 name: Mobile Native Static Analysis
80 runs-on: blacksmith-12vcpu-macos-2694 runs-on: blacksmith-6vcpu-macos-26
81 timeout-minutes: 1095 timeout-minutes: 10
82 steps:96 steps:
83 - name: Checkout97 - name: Checkout
84 uses: actions/checkout@v698 uses: actions/checkout@v6
99 with:
100 sparse-checkout: |
101 /*
102 !/.repos/
103 sparse-checkout-cone-mode: false
85104
86 - name: Setup Vite+105 - name: Setup Vite+
87 uses: voidzero-dev/setup-vp@v1106 uses: voidzero-dev/setup-vp@v1
88 with:107 with:
89 node-version-file: package.json108 node-version-file: package.json
90 cache: true109 cache: true
91 run-install: true110 run-install: |
111 args:
112 - --filter=@t3tools/scripts...
92113
93 - name: Install mobile native static analysis tools114 - name: Install mobile native static analysis tools
94 run: brew bundle install --file apps/mobile/Brewfile115 run: brew bundle install --file apps/mobile/Brewfile
...@@ -103,13 +124,20 @@ jobs:...@@ -103,13 +124,20 @@ jobs:
103 steps:124 steps:
104 - name: Checkout125 - name: Checkout
105 uses: actions/checkout@v6126 uses: actions/checkout@v6
127 with:
128 sparse-checkout: |
129 /*
130 !/.repos/
131 sparse-checkout-cone-mode: false
106132
107 - name: Setup Vite+133 - name: Setup Vite+
108 uses: voidzero-dev/setup-vp@v1134 uses: voidzero-dev/setup-vp@v1
109 with:135 with:
110 node-version-file: package.json136 node-version-file: package.json
111 cache: true137 cache: true
112 run-install: true138 run-install: |
139 args:
140 - --filter=@t3tools/scripts...
113141
114 - name: Exercise release-only workflow steps142 - name: Exercise release-only workflow steps
115 run: node scripts/release-smoke.ts143 run: node scripts/release-smoke.ts
.github/workflows/deploy-relay.yml+8-1
...@@ -38,13 +38,20 @@ jobs:...@@ -38,13 +38,20 @@ jobs:
38 steps:38 steps:
39 - name: Checkout39 - name: Checkout
40 uses: actions/checkout@v640 uses: actions/checkout@v6
41 with:
42 sparse-checkout: |
43 /*
44 !/.repos/
45 sparse-checkout-cone-mode: false
4146
42 - name: Setup Vite+47 - name: Setup Vite+
43 uses: voidzero-dev/setup-vp@v148 uses: voidzero-dev/setup-vp@v1
44 with:49 with:
45 node-version-file: package.json50 node-version-file: package.json
46 cache: true51 cache: true
47 run-install: true52 run-install: |
53 args:
54 - --filter=t3code-relay...
4855
49 - name: Deploy production relay stage56 - name: Deploy production relay stage
50 id: deploy57 id: deploy
.github/workflows/mobile-eas-preview.yml+14-3
...@@ -2,13 +2,18 @@ name: Mobile EAS Preview...@@ -2,13 +2,18 @@ name: Mobile EAS Preview
22
3on:3on:
4 pull_request:4 pull_request:
5 types: [opened, reopened, synchronize, labeled, unlabeled]5 types: [opened, reopened, synchronize, labeled]
66
7jobs:7jobs:
8 preview:8 preview:
9 name: EAS Preview9 name: EAS Preview
10 if: contains(github.event.pull_request.labels.*.name, '🚀 Mobile Continuous Deployment')10 if: |
11 contains(github.event.pull_request.labels.*.name, '🚀 Mobile Continuous Deployment') &&
12 (github.event.action != 'labeled' || github.event.label.name == '🚀 Mobile Continuous Deployment')
11 runs-on: blacksmith-8vcpu-ubuntu-240413 runs-on: blacksmith-8vcpu-ubuntu-2404
14 concurrency:
15 group: mobile-eas-preview-${{ github.event.pull_request.number }}
16 cancel-in-progress: true
12 permissions:17 permissions:
13 contents: read18 contents: read
14 pull-requests: write19 pull-requests: write
...@@ -34,6 +39,10 @@ jobs:...@@ -34,6 +39,10 @@ jobs:
34 uses: actions/checkout@v639 uses: actions/checkout@v6
35 with:40 with:
36 fetch-depth: 041 fetch-depth: 0
42 sparse-checkout: |
43 /*
44 !/.repos/
45 sparse-checkout-cone-mode: false
3746
38 - name: Setup Vite+47 - name: Setup Vite+
39 if: steps.expo-token.outputs.present == 'true'48 if: steps.expo-token.outputs.present == 'true'
...@@ -41,7 +50,9 @@ jobs:...@@ -41,7 +50,9 @@ jobs:
41 with:50 with:
42 node-version-file: package.json51 node-version-file: package.json
43 cache: true52 cache: true
44 run-install: true53 run-install: |
54 args:
55 - --filter=@t3tools/mobile...
4556
46 - name: Expose pnpm57 - name: Expose pnpm
47 if: steps.expo-token.outputs.present == 'true'58 if: steps.expo-token.outputs.present == 'true'
.github/workflows/mobile-eas-production.yml+7-1
...@@ -57,6 +57,10 @@ jobs:...@@ -57,6 +57,10 @@ jobs:
57 uses: actions/checkout@v657 uses: actions/checkout@v6
58 with:58 with:
59 fetch-depth: 059 fetch-depth: 0
60 sparse-checkout: |
61 /*
62 !/.repos/
63 sparse-checkout-cone-mode: false
6064
61 - name: Setup Vite+65 - name: Setup Vite+
62 if: steps.expo-token.outputs.present == 'true'66 if: steps.expo-token.outputs.present == 'true'
...@@ -64,7 +68,9 @@ jobs:...@@ -64,7 +68,9 @@ jobs:
64 with:68 with:
65 node-version-file: package.json69 node-version-file: package.json
66 cache: true70 cache: true
67 run-install: true71 run-install: |
72 args:
73 - --filter=@t3tools/mobile...
6874
69 - name: Expose pnpm75 - name: Expose pnpm
70 if: steps.expo-token.outputs.present == 'true'76 if: steps.expo-token.outputs.present == 'true'
.github/workflows/mobile-showcase-screenshots.yml+18-2
...@@ -37,13 +37,21 @@ jobs:...@@ -37,13 +37,21 @@ jobs:
37 steps:37 steps:
38 - name: Checkout38 - name: Checkout
39 uses: actions/checkout@v639 uses: actions/checkout@v6
40 with:
41 sparse-checkout: |
42 /*
43 !/.repos/
44 sparse-checkout-cone-mode: false
4045
41 - name: Setup Vite+46 - name: Setup Vite+
42 uses: voidzero-dev/setup-vp@v147 uses: voidzero-dev/setup-vp@v1
43 with:48 with:
44 node-version-file: package.json49 node-version-file: package.json
45 cache: true50 cache: true
46 run-install: true51 run-install: |
52 args:
53 - --filter=@t3tools/mobile...
54 - --filter=@t3tools/scripts...
4755
48 - name: Expose pnpm56 - name: Expose pnpm
49 run: |57 run: |
...@@ -77,13 +85,21 @@ jobs:...@@ -77,13 +85,21 @@ jobs:
77 steps:85 steps:
78 - name: Checkout86 - name: Checkout
79 uses: actions/checkout@v687 uses: actions/checkout@v6
88 with:
89 sparse-checkout: |
90 /*
91 !/.repos/
92 sparse-checkout-cone-mode: false
8093
81 - name: Setup Vite+94 - name: Setup Vite+
82 uses: voidzero-dev/setup-vp@v195 uses: voidzero-dev/setup-vp@v1
83 with:96 with:
84 node-version-file: package.json97 node-version-file: package.json
85 cache: true98 cache: true
86 run-install: true99 run-install: |
100 args:
101 - --filter=@t3tools/mobile...
102 - --filter=@t3tools/scripts...
87103
88 - name: Expose pnpm104 - name: Expose pnpm
89 run: |105 run: |
.github/workflows/release.yml+48-4
...@@ -38,6 +38,10 @@ jobs:...@@ -38,6 +38,10 @@ jobs:
38 uses: actions/checkout@v638 uses: actions/checkout@v6
39 with:39 with:
40 fetch-depth: 040 fetch-depth: 0
41 sparse-checkout: |
42 /*
43 !/.repos/
44 sparse-checkout-cone-mode: false
4145
42 - id: check46 - id: check
43 name: Compare HEAD to last nightly tag47 name: Compare HEAD to last nightly tag
...@@ -84,6 +88,10 @@ jobs:...@@ -84,6 +88,10 @@ jobs:
84 uses: actions/checkout@v688 uses: actions/checkout@v6
85 with:89 with:
86 fetch-depth: 090 fetch-depth: 0
91 sparse-checkout: |
92 /*
93 !/.repos/
94 sparse-checkout-cone-mode: false
8795
88 - name: Setup Vite+96 - name: Setup Vite+
89 uses: voidzero-dev/setup-vp@v197 uses: voidzero-dev/setup-vp@v1
...@@ -192,6 +200,10 @@ jobs:...@@ -192,6 +200,10 @@ jobs:
192 uses: actions/checkout@v6200 uses: actions/checkout@v6
193 with:201 with:
194 ref: ${{ needs.preflight.outputs.ref }}202 ref: ${{ needs.preflight.outputs.ref }}
203 sparse-checkout: |
204 /*
205 !/.repos/
206 sparse-checkout-cone-mode: false
195207
196 - name: Setup Vite+208 - name: Setup Vite+
197 uses: voidzero-dev/setup-vp@v1209 uses: voidzero-dev/setup-vp@v1
...@@ -269,14 +281,19 @@ jobs:...@@ -269,14 +281,19 @@ jobs:
269 uses: actions/checkout@v6281 uses: actions/checkout@v6
270 with:282 with:
271 ref: ${{ needs.preflight.outputs.ref }}283 ref: ${{ needs.preflight.outputs.ref }}
272 fetch-depth: 0284 sparse-checkout: |
285 /*
286 !/.repos/
287 sparse-checkout-cone-mode: false
273288
274 - name: Setup Vite+289 - name: Setup Vite+
275 uses: voidzero-dev/setup-vp@v1290 uses: voidzero-dev/setup-vp@v1
276 with:291 with:
277 node-version-file: package.json292 node-version-file: package.json
278 cache: true293 cache: true
279 run-install: true294 run-install: |
295 args:
296 - --filter=t3...
280297
281 - name: Build node-pty linux-x64 prebuild298 - name: Build node-pty linux-x64 prebuild
282 shell: bash299 shell: bash
...@@ -359,14 +376,21 @@ jobs:...@@ -359,14 +376,21 @@ jobs:
359 uses: actions/checkout@v6376 uses: actions/checkout@v6
360 with:377 with:
361 ref: ${{ needs.preflight.outputs.ref }}378 ref: ${{ needs.preflight.outputs.ref }}
362 fetch-depth: 0379 sparse-checkout: |
380 /*
381 !/.repos/
382 sparse-checkout-cone-mode: false
363383
364 - name: Setup Vite+384 - name: Setup Vite+
365 uses: voidzero-dev/setup-vp@v1385 uses: voidzero-dev/setup-vp@v1
366 with:386 with:
367 node-version-file: package.json387 node-version-file: package.json
368 cache: true388 cache: true
369 run-install: true389 run-install: |
390 args:
391 - --filter=@t3tools/desktop...
392 - --filter=t3...
393 - --filter=@t3tools/scripts...
370394
371 - name: Setup Rust395 - name: Setup Rust
372 uses: dtolnay/rust-toolchain@stable396 uses: dtolnay/rust-toolchain@stable
...@@ -657,6 +681,10 @@ jobs:...@@ -657,6 +681,10 @@ jobs:
657 uses: actions/checkout@v6681 uses: actions/checkout@v6
658 with:682 with:
659 ref: ${{ needs.preflight.outputs.ref }}683 ref: ${{ needs.preflight.outputs.ref }}
684 sparse-checkout: |
685 /*
686 !/.repos/
687 sparse-checkout-cone-mode: false
660688
661 - name: Setup Vite+689 - name: Setup Vite+
662 uses: voidzero-dev/setup-vp@v1690 uses: voidzero-dev/setup-vp@v1
...@@ -732,6 +760,10 @@ jobs:...@@ -732,6 +760,10 @@ jobs:
732 uses: actions/checkout@v6760 uses: actions/checkout@v6
733 with:761 with:
734 ref: ${{ needs.preflight.outputs.ref }}762 ref: ${{ needs.preflight.outputs.ref }}
763 sparse-checkout: |
764 /*
765 !/.repos/
766 sparse-checkout-cone-mode: false
735767
736 - name: Setup Vite+768 - name: Setup Vite+
737 uses: voidzero-dev/setup-vp@v1769 uses: voidzero-dev/setup-vp@v1
...@@ -853,6 +885,10 @@ jobs:...@@ -853,6 +885,10 @@ jobs:
853 uses: actions/checkout@v6885 uses: actions/checkout@v6
854 with:886 with:
855 ref: ${{ needs.preflight.outputs.ref }}887 ref: ${{ needs.preflight.outputs.ref }}
888 sparse-checkout: |
889 /*
890 !/.repos/
891 sparse-checkout-cone-mode: false
856892
857 - name: Setup Vite+893 - name: Setup Vite+
858 uses: voidzero-dev/setup-vp@v1894 uses: voidzero-dev/setup-vp@v1
...@@ -967,6 +1003,10 @@ jobs:...@@ -967,6 +1003,10 @@ jobs:
967 fetch-depth: 01003 fetch-depth: 0
968 token: ${{ steps.app_token.outputs.token }}1004 token: ${{ steps.app_token.outputs.token }}
969 persist-credentials: true1005 persist-credentials: true
1006 sparse-checkout: |
1007 /*
1008 !/.repos/
1009 sparse-checkout-cone-mode: false
9701010
971 - id: app_bot1011 - id: app_bot
972 name: Resolve GitHub App bot identity1012 name: Resolve GitHub App bot identity
...@@ -1037,6 +1077,10 @@ jobs:...@@ -1037,6 +1077,10 @@ jobs:
1037 uses: actions/checkout@v61077 uses: actions/checkout@v6
1038 with:1078 with:
1039 ref: ${{ needs.preflight.outputs.ref }}1079 ref: ${{ needs.preflight.outputs.ref }}
1080 sparse-checkout: |
1081 /*
1082 !/.repos/
1083 sparse-checkout-cone-mode: false
10401084
1041 - name: Setup Vite+1085 - name: Setup Vite+
1042 uses: voidzero-dev/setup-vp@v11086 uses: voidzero-dev/setup-vp@v1