Skip to content

ci(js-tests): shard desktop check:test:ui 3 ways — merge-group critical path - #1225

Merged
ang-fleet-lander[bot] merged 4 commits into
mainfrom
ci/js-ui-shard
Sep 26, 2026
Merged

ang-fleet-lander[bot] merged 4 commits into
mainfrom
ci/js-ui-shard

Conversation

@Kyzcreig

@Kyzcreig Kyzcreig commented Sep 26, 2026 •

Copy link
Copy Markdown
Collaborator

Kanban t_bc0f3f62. The merge-group critical path was the single JS & TS checks job.

Profile of merge_group run 36217656078, job 108336862445 (ubuntu-latest, 4 cores):

  • setup: checkout 6s, setup-node 6s, npm12 4s, node_modules cache restore 8s (exact hit, install skipped). Install is already cached on the lockfile, so no caching lever is left.
  • apps/desktop :: check:test:ui: 656.7s (685 files, 6774 tests). vitest worker time: import 747s + environment 644s + tests 329s + transform 100s + setup 83s. This is per-file jsdom and import cost, so it splits linearly by file.
  • The other 9 checks: check:lint 224s, ui-tui 106s, desktop:all 100s, web 73s, the rest under 35s. All of them finished by about 04:27.

Change:

  • New ui-tests matrix job runs vitest --project ui --shard=N/3 with N = 1..3 and fail-fast off. It is the same command as check:test:ui (npm run test:ui) with a shard flag added.
  • The check job runs run-workspace-checks.mjs --skip apps/desktop::check:test:ui.
  • --skip exits 1 when it matches no unit. If the script is renamed, the suite cannot quietly drop out of both jobs.
  • New .github/actions/node-workspace composite holds the setup, npm12, cache and install steps. All 4 jobs share it, so they cannot end up on different cache keys.

The only required context is All required checks pass, and it still depends on js-tests (the reusable workflow result aggregates every inner job). Job ids in ci.yaml and evaluate_needs are unchanged.

Coverage parity: in CI, the per-shard Test Files counts must sum to 685 and Tests must sum to 6774, the same as the unsharded run.


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

merge_group run 36217656078: "JS & TS checks" took 11m26s, 656.7s of it in
apps/desktop check:test:ui (685 files, 6774 tests; vitest worker time
import 747s + environment 644s + tests 329s). The other 9 checks finished
by 04:27. That one unit was the merge group's critical path.

- ui-tests job: vitest --project ui --shard=N/3, matrix 1..3, fail-fast off
- check job: run-workspace-checks.mjs --skip apps/desktop::check:test:ui
- run-workspace-checks.mjs: repeatable --skip; a skip matching no unit
  exits 1 so a rename cannot drop the suite from both jobs
- .github/actions/node-workspace: the setup-node/npm12/node_modules-cache/
  install steps, shared so all 4 jobs hit one cache key

Verified: --list with the skip shows 9 units (10 without); a bogus --skip
exits 1; actionlint clean on js-tests.yml. Shard file parity is checked on
the CI run (sum of per-shard Test Files == 685).
@blacksmith-sh

blacksmith-sh Bot commented Sep 26, 2026 •

Copy link
Copy Markdown

Found 2 test failures on Blacksmith runners:

Failures

Test View Logs
test_signal_handler_kanban_worker/test_sigterm_with_kanban_task_env_terminates_quickly View Logs
TestPinTransition/test_cache_busting_signature_reflects_pin_peer_name View Logs

Fix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

@ang-fleet-interactive ang-fleet-interactive Bot added the ci-reviewed CI-sensitive changes reviewed by maintainer label Sep 26, 2026
@ang-fleet-lander

Copy link
Copy Markdown

🤖 merged-by: apollo · lane: discord · gate: BYPASS: FR paused by Ace 2026-09-22; Argus off card review (Ace 09-24 13:08); gate = handoff + CI green + Apollo read (review-of-record on card) · why: js-tests shard 3 ways (critical path)

@ang-fleet-lander
ang-fleet-lander Bot added this pull request to the merge queue Sep 26, 2026
Merged via the queue into main with commit 0a8f42d Sep 26, 2026
59 checks passed
@ang-fleet-lander
ang-fleet-lander Bot deleted the ci/js-ui-shard branch September 26, 2026 15:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci-reviewed CI-sensitive changes reviewed by maintainer

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant