Skip redundant PR CI work without dropping merge-queue coverage - #2862
Draft
Dominic Nguyen (datduyng) wants to merge 12 commits into
Draft
Skip redundant PR CI work without dropping merge-queue coverage#2862Dominic Nguyen (datduyng) wants to merge 12 commits into
Dominic Nguyen (datduyng) wants to merge 12 commits into
Conversation
Required status-check names stay on every OS/Node cell so the main ruleset still sees a report. pull_request cells just do less work. - Drive scope from ts/tools/scripts/prCiScope.mjs (full / ratchet / package). push and merge_group still run the full matrix. - build-ts PRs: skip Node 24 install/build/test; run ratchets and a single git fetch of the base on ubuntu/22 only. - build-ts PRs: shallow checkout on non-ratchet cells. - build-package-shell PRs: keep ubuntu packaging; skip macos/windows. - azure-smoke-tests detect job: fetchDepth 2 (HEAD and HEAD^1). - Add node --test coverage that invokes the real CLI and reads the shipped workflow YAML.
Contributor
Author
|
/azp run |
|
Azure Pipelines: Successfully started running 1 pipeline(s). |
Skipping Node 24 tests or macos/windows packaging would make the PR gate weaker than the merge. Restore that work. What is left is only redundant work: - One git fetch of the PR base instead of five. - Ratchets once on ubuntu/22 (same tree, not OS-specific). - Shallow checkout on cells that only install/build/test. - ADO detect job fetchDepth 2 (smoke tests still run).
Contributor
Author
|
/azp run |
|
Azure Pipelines: Successfully started running 1 pipeline(s). |
Every OS/Node cell still builds, tests, and packages. - Checkout PRs at depth 2 (merge commit + parents) on all build-ts cells. Fetch the base ref once with --depth=1. - ADO smoke: install Playwright in parallel with npm run build. - ADO smoke: run test:live on a separate Linux job so the required shell/CLI job does not wait for it. Live tests still run (continueOnError unchanged).
Contributor
Author
|
/azp run |
|
Azure Pipelines: Successfully started running 1 pipeline(s). |
Realtime scanning of checkout, pnpm, and test output is a known multi-minute tax on GitHub-hosted and ADO Windows agents. The same suites still run on every required cell. Also record the #2847 required-check span (65.90 min) and the 46.13 min 30% target in the measurements note.
Contributor
Author
|
/azp run |
|
Azure Pipelines: Successfully started running 1 pipeline(s). |
The required GitHub check "TypeAgent Smoke Tests" stays queued until the ADO pipeline finishes. On SHA 82791dc the Windows leg was 33 min because it ran the full Playwright+jest suite (shell:test) while Linux only ran shell:smoke (simple.spec.ts). Pull requests now run shell:smoke on both OS. The full Windows shell:test still runs on main and the merge-queue CI trigger (gh-readonly-queue/main/*), which is what gates merge. Suite choice comes from prCiScope.mjs --windows-shell-suite.
Contributor
Author
|
/azp run |
|
Azure Pipelines will not run the associated pipelines, because the pull request was updated after the run command was issued. Review the pull request again and issue a new run command. |
- Skip live_linux on PullRequest. continueOnError already meant a live failure did not fail the gate, but the parent TypeAgent Smoke Tests check stayed queued until live finished (~13 min past Windows smoke on 7e4135e). main and merge-queue still run test:live. - Smoke agents build only agent-shell|agent-cli (with deps) and install Playwright chromium only. playwright.config.ts has one project; shell:smoke launches Electron. Full monorepo build stays on live and build_ts. - On 7e4135e the required span was 36.78 min (ratio 0.558 vs #2847). Live was the pole; Windows smoke setup was 15.5 min of build+browsers for a 1.3 min suite.
Contributor
Author
|
/azp run |
|
Azure Pipelines: Successfully started running 1 pipeline(s). |
Windows PR path no longer downgrades to shell:smoke. Full jest + Playwright shell:test runs on PR, main, and merge-queue again. Linux stays on shell:smoke (pre-existing). 30% bar still expected from the other cuts: skip PR live hold, ratchet once, shallow fetch, Defender exclusion, shell+cli build scope, Playwright chromium-only. Prior full-Windows parent was ~34 min vs 46 min target.
Contributor
Author
|
/azp run |
|
Azure Pipelines will not run the associated pipelines, because the pull request was updated after the run command was issued. Review the pull request again and issue a new run command. |
Remove workspace Defender disable/exclusion from build_ts, package shell, and ADO smoke. The 30% PR wall-clock cut does not depend on it: baseline already ran with default Defender; the gain is skip PR live hold, single-cell ratchets, shallow PR fetch, and scoped smoke setup.
Contributor
Author
|
/azp run |
|
Azure Pipelines will not run the associated pipelines, because the pull request was updated after the run command was issued. Review the pull request again and issue a new run command. |
- live_linux runs on every ts-changed trigger including PullRequest (same suite as main baseline; continueOnError unchanged). - Shell/CLI stay parallel to live so they do not serialize behind it. - Live job builds only packages that define test:live (+deps) via prCiScope --live-package-filter; still runs npm run test:live. - Tests require PR suite parity (CLI, shell:smoke, Windows shell:test, test:live) and fail if live is gated off PullRequest.
Contributor
Author
|
/azp run |
|
Azure Pipelines: Successfully started running 1 pipeline(s). |
Contributor
Author
|
/azp run |
|
Azure Pipelines will not run the associated pipelines, because the pull request was updated after the run command was issued. Review the pull request again and issue a new run command. |
Contributor
Author
|
/azp run |
|
Azure Pipelines: Successfully started running 1 pipeline(s). |
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.
PR CI keeps the same suites as main baseline on every PullRequest. Speed comes from removing redundant steps only — not from dropping checks.
Suite parity (PR)
shell:smokeshell:test(full)test:livecontinueOnError)live_linux,continueOnError)test:liveruns on PullRequest, main, and merge-queue. Parent ADO check still waits for the live job. Live failure does not fail the pipeline (continueOnError, same as baseline).Measured required-check span (tip
87a7bc72b)continueOnError)shell:test~30% wall-clock cut with no suite skipped. (4 s over the strict ≤2768 s line.)
Redundant-only cuts
build_ts: ratchets + base fetch once (ubuntu/22); PRfetch-depth: 2fluid-build agent-shell|agent-cli --dep+ Playwright chromium-onlytest:live(+deps); still fullnpm run test:liveDraft FYI
Left in draft.