authorgravatar for julius0216@outlook.comJulius Marminge <julius0216@outlook.com> 2026-09-23 16:22:02-07:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2026-09-23 16:22:02-07:00
loge407f9bb090d0cec231df21ad30e9e13186d9518
treea3933eebecb27fe5569d5543a5475619a8a7cad4
parent68fb7f4b850991ba0ca5bd0d7c4aa13d4e5d6bb7
signature Signed by PGP key B5690EEEBB952194

fix(ci): shard release tests like pull request CI (#13321)


1 files changed, 68 insertions(+), 3 deletions(-)

.github/workflows/release.yml+68-3
...@@ -259,13 +259,76 @@ jobs:...@@ -259,13 +259,76 @@ jobs:
259 - name: Typecheck259 - name: Typecheck
260 run: vp run typecheck260 run: vp run typecheck
261261
262 # Keep tests on their own runners, using the same package split and server
263 # shards as CI, so the release check job does not spend its budget on tests.
264 test:
265 name: Release tests
266 needs: [preflight]
267 if: ${{ !failure() && !cancelled() && needs.preflight.result == 'success' }}
268 runs-on: blacksmith-8vcpu-ubuntu-2404
269 timeout-minutes: 10
270 steps:
271 - name: Checkout
272 uses: actions/checkout@v6
273 with:
274 ref: ${{ needs.preflight.outputs.ref }}
275 sparse-checkout: |
276 /*
277 !/.repos/
278 sparse-checkout-cone-mode: false
279
280 - name: Setup Vite+
281 uses: voidzero-dev/setup-vp@v1
282 with:
283 node-version-file: package.json
284 cache: true
285 run-install: true
286
287 - name: Ensure Electron runtime is installed
288 run: vp run --filter @t3tools/desktop ensure:electron
289
262 - uses: ./.github/actions/setup-apt-mirrors290 - uses: ./.github/actions/setup-apt-mirrors
263291
264 - name: Install browser secret helper build libraries292 - name: Install browser secret helper build libraries
265 run: sudo apt-get update && sudo apt-get install -y libsecret-1-dev pkg-config293 run: |
294 sudo sed -i 's|http://|https://|g' /etc/apt/blacksmith-ubuntu-mirrors.txt /etc/apt/sources.list.d/ubuntu.sources
295 sudo apt-get update && sudo apt-get install -y libsecret-1-dev pkg-config build-essential
296
297 - name: Test
298 run: vp run --parallel --concurrency-limit 4 --filter '!t3' --filter '!@t3tools/monorepo' test
299
300 test_server:
301 name: Release server tests ${{ matrix.shard }}
302 needs: [preflight]
303 if: ${{ !failure() && !cancelled() && needs.preflight.result == 'success' }}
304 runs-on: blacksmith-8vcpu-ubuntu-2404
305 timeout-minutes: 10
306 strategy:
307 fail-fast: false
308 matrix:
309 shard: [1, 2, 3]
310 steps:
311 - name: Checkout
312 uses: actions/checkout@v6
313 with:
314 ref: ${{ needs.preflight.outputs.ref }}
315 sparse-checkout: |
316 /*
317 !/.repos/
318 sparse-checkout-cone-mode: false
319
320 - name: Setup Vite+
321 uses: voidzero-dev/setup-vp@v1
322 with:
323 node-version-file: package.json
324 cache: true
325 run-install: true
266326
327 # No Electron setup here: `t3` (apps/server) has no Electron dependency
328 # and none of its tests touch the runtime. Only the non-server `test`
329 # job, which covers @t3tools/desktop, needs the download.
267 - name: Test330 - name: Test
268 run: vp run test331 run: vp run --filter t3 test --shard ${{ matrix.shard }}/${{ strategy.job-total }}
269332
270 relay_public_config:333 relay_public_config:
271 name: Resolve T3 Connect public config334 name: Resolve T3 Connect public config
...@@ -630,13 +693,15 @@ jobs:...@@ -630,13 +693,15 @@ jobs:
630 preflight,693 preflight,
631 relay_public_config,694 relay_public_config,
632 quality,695 quality,
696 test,
697 test_server,
633 desktop_mac_arm64,698 desktop_mac_arm64,
634 desktop_linux_x64,699 desktop_linux_x64,
635 desktop_linux_arm64,700 desktop_linux_arm64,
636 desktop_win_x64,701 desktop_win_x64,
637 desktop_win_arm64,702 desktop_win_arm64,
638 ]703 ]
639 if: ${{ !failure() && !cancelled() && needs.preflight.result == 'success' && needs.relay_public_config.result == 'success' && needs.quality.result == 'success' && needs.desktop_mac_arm64.result == 'success' && needs.desktop_linux_x64.result == 'success' && needs.desktop_linux_arm64.result == 'success' && needs.desktop_win_x64.result == 'success' && needs.desktop_win_arm64.result == 'success' }}704 if: ${{ !failure() && !cancelled() && needs.preflight.result == 'success' && needs.relay_public_config.result == 'success' && needs.quality.result == 'success' && needs.test.result == 'success' && needs.test_server.result == 'success' && needs.desktop_mac_arm64.result == 'success' && needs.desktop_linux_x64.result == 'success' && needs.desktop_linux_arm64.result == 'success' && needs.desktop_win_x64.result == 'success' && needs.desktop_win_arm64.result == 'success' }}
640 runs-on: ubuntu-24.04 # blacksmith-8vcpu-ubuntu-2404705 runs-on: ubuntu-24.04 # blacksmith-8vcpu-ubuntu-2404
641 timeout-minutes: 15706 timeout-minutes: 15
642 permissions:707 permissions: