ci: parallelize independent setup steps in build and test jobs - #52721
Open
claude[bot] wants to merge 2 commits into
Open
ci: parallelize independent setup steps in build and test jobs#52721claude[bot] wants to merge 2 commits into
claude[bot] wants to merge 2 commits into
Conversation
MarshallOfSound
marked this pull request as ready for review
August 9, 2026 02:26
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.
Requested by Samuel Attard · Slack thread
Description of Change
Before: the test jobs run five independent setup steps (installing dependencies, cloning depot_tools, downloading the generated and src artifacts, and provisioning the Linux CUPS virtual printer) strictly one after another, and macOS builds wait for the disk-freeing step to finish before doing anything else — including restoring caches that don't need the freed space yet.
After: those steps overlap using GitHub Actions' new parallel/background steps, saving roughly 4 minutes of wall time per full run with no behavior change — every step still runs to completion before anything that depends on it.
How: the five independent setup steps in the test segment are grouped under a
parallel:block (they write disjoint paths and none reads another's output; env- and PATH-mutating steps stay serial and are only consumed after the group's implicit wait). In the build segment, the macOS disk-freeing step is backgrounded withbackground: trueand await-allfence is placed just before the src-cache restore — the step that actually needs the freed disk (the fence is a no-op on Windows/Linux). The publish segment is regenerated from the build segment via the existing sync script, so it picks up the same change.Deliberately left serial: the
Add Depot Tools to PATHand otherGITHUB_ENV/GITHUB_PATH-mutating steps, and the macOS AZCopy install, which must not overlap thebrewinvocations inside the disk-freeing step.Checklist
Release Notes
Notes: none
Generated by Claude Code