perf(ci): cache playwright/apt, draft-gate expensive jobs, consolidate sub-minute jobs - #904
Merged
Merged
Conversation
sabbour
force-pushed
the
perf/ci-caching-and-job-consolidation
branch
from
August 25, 2026 12:38
6006c99 to
391553b
Compare
sabbour
changed the base branch from
dev
to
perf/docs-drift-and-publish-images-scoping
August 25, 2026 12:38
sabbour
force-pushed
the
perf/ci-caching-and-job-consolidation
branch
2 times, most recently
from
August 25, 2026 12:40
b355e26 to
ea6d18d
Compare
sabbour
force-pushed
the
perf/ci-caching-and-job-consolidation
branch
from
August 25, 2026 14:34
ea6d18d to
d3974d5
Compare
sabbour
force-pushed
the
perf/ci-caching-and-job-consolidation
branch
from
August 25, 2026 14:48
d3974d5 to
7287856
Compare
sabbour
force-pushed
the
perf/ci-caching-and-job-consolidation
branch
from
August 25, 2026 15:30
7287856 to
d5fecb0
Compare
Base automatically changed from
perf/docs-drift-and-publish-images-scoping
to
dev
August 25, 2026 15:40
…-lint and diagrams-in-sync - Cache ~/.cache/ms-playwright keyed on ui-harness/package-lock.json - Cache bubblewrap binary to skip apt-get on hits - Add draft-gate (if: !draft) to dotnet-tests, web-tests, node-toolchain-tests, docs-build - Remove the redundant Web lint echo job and the diagrams-in-sync job - changeset-advisory remains a standalone job unchanged from dev Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 11857092-1327-41bd-8708-b2ca85e674dd
sabbour
force-pushed
the
perf/ci-caching-and-job-consolidation
branch
from
August 25, 2026 15:40
d5fecb0 to
3caff2c
Compare
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.
Three CI perf improvements
1. Cache Playwright browsers and bubblewrap
node-toolchain-tests: cache~/.cache/ms-playwrightkeyed onscripts/ui-harness/package-lock.json; only run fullplaywright install --with-depson cache miss, otherwise justinstall-depsfor system libs.dotnet-tests: cache the/usr/bin/bwrapbinary; skipapt-get installon cache hits.2. Draft-gate expensive jobs
github.event.pull_request.draft == falsetodotnet-tests,web-tests,node-toolchain-tests,docs-build. Skipped jobs reportskippedto GitHub, which required-status-check rulesets treat as passing, so draft PRs (e.g. upper frames of a stacked PR) no longer burn full CI while blocked on a lower frame merging.changes, its consolidated changeset-advisory/diagram steps, andarchitecture-diagramswere intentionally left ungated since they're lightweight and give fast feedback even in draft.3. Consolidate sub-minute jobs
web-lintecho job entirely (it only echoed a confirmation; lint already runs insideweb-tests).changeset-advisoryanddiagrams-in-sync(architecture-diagram check) into thechangesjob as extra conditional steps, since all three were sub-minute jobs each paying a full runner startup + GitHub Actions' 1-minute billing floor for <20s of real work.changescheckout now usesfetch-depth: 0(needed by the changeset advisory diff against the PR base ref).Both rulesets reference job names as required status checks:
dev-integration-rulesetrequires:.NET tests,Node toolchain tests,Web tests,Docs build,Changeset advisorymain-rulesetrequires:.NET tests,Node toolchain tests,Web tests,Docs buildSince
Changeset advisoryis no longer a separate job/check (it's now a step insideDetect changed paths),dev-integration-rulesetwill need to be updated to dropChangeset advisoryfrom its required checks list (or point at a new check name), or PRs intodevwill show that required check as permanently missing. I did not modify the ruleset via API per instructions — flagging here for @sabbour to update manually.main-rulesetis unaffected (it doesn't referenceChangeset advisory,Architecture diagrams are in sync, orWeb lint).Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com