ci: parallelize heavy test lanes - #1965
Merged
Merged
Conversation
M4n5ter
force-pushed
the
agent/split-ci-heavy-test-lanes
branch
from
August 3, 2026 07:50
12dcef8 to
d15f199
Compare
M4n5ter
force-pushed
the
agent/split-ci-heavy-test-lanes
branch
from
August 3, 2026 08:12
d15f199 to
0f6100e
Compare
M4n5ter
marked this pull request as ready for review
August 3, 2026 08:23
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
English
Summary
testande2echecks that wait for every selected lane and verify exact success/skip outcomesWhy
The workspace test job previously combined independent heavy suites on one two-core runner and then ran Headless serially. Separately, Desktop E2E launched 58 isolated Electron applications through one CI worker because multiple workers on one X display have real OS-focus races.
The workspace lanes give independent suites their own capacity. The E2E shards preserve one worker per display—and therefore the focus behavior—while overlapping independent Electron cold starts across isolated runners.
Safety
workers: 1,retries: 0, and the existing timeoutsThis trades bounded runner parallelism for lower feedback latency. Narrow changes still start only the lanes selected by the dependency closure.
Validation
npm run test:scripts: 24 passednpm --workspace @maka/desktop run typechecknpm run lintnpm run format:checknpm run e2e -- --shard=1/2 --list中文
概要
test与e2e检查;它们会等待全部已选择 lane,并严格核对成功/跳过状态原因
原 workspace test job 会在同一个两核 runner 上组合多个相互独立的重型 suite,最后再串行运行 Headless。与此同时,Desktop E2E 会通过一个 CI worker 依次启动 58 个相互隔离的 Electron 应用;这是因为同一 X display 上的多个 worker 已被证实会发生真实 OS focus 竞态。
Workspace lane 为独立 suite 提供独立容量。E2E shard 继续保持每个 display 只有一个 worker,从而保留原有 focus 行为,同时在相互隔离的 runner 之间重叠 Electron 冷启动。
安全性
workers: 1、retries: 0和现有 timeout本方案以有限的 runner 并行度换取更短反馈时间;范围较窄的改动仍只启动依赖闭包选中的 lane。
验证
npm run test:scripts:24 个通过npm --workspace @maka/desktop run typechecknpm run lintnpm run format:checknpm run e2e -- --shard=1/2 --list完成 Desktop 全量构建