| ... | @@ -259,13 +259,76 @@ jobs: | ... | @@ -259,13 +259,76 @@ jobs: |
| 259 | - name: Typecheck | 259 | - name: Typecheck |
| 260 | run: vp run typecheck | 260 | run: vp run typecheck |
| 261 | | 261 | |
| | 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-mirrors | 290 | - uses: ./.github/actions/setup-apt-mirrors |
| 263 | | 291 | |
| 264 | - name: Install browser secret helper build libraries | 292 | - name: Install browser secret helper build libraries |
| 265 | run: sudo apt-get update && sudo apt-get install -y libsecret-1-dev pkg-config | 293 | 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 |
| 266 | | 326 | |
| | 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: Test | 330 | - name: Test |
| 268 | run: vp run test | 331 | run: vp run --filter t3 test --shard ${{ matrix.shard }}/${{ strategy.job-total }} |
| 269 | | 332 | |
| 270 | relay_public_config: | 333 | relay_public_config: |
| 271 | name: Resolve T3 Connect public config | 334 | 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-2404 | 705 | runs-on: ubuntu-24.04 # blacksmith-8vcpu-ubuntu-2404 |
| 641 | timeout-minutes: 15 | 706 | timeout-minutes: 15 |
| 642 | permissions: | 707 | permissions: |