ci: route CPU tests to ACK/ECI runners with overlay2 and cross-pod ccache - #7935
Merged
Conversation
…ache Updated GitHub Actions workflow to include push trigger for develop branch, improved caching for compiler, and consolidated test execution steps.
Agent Governance Check
|
mohanchen
self-requested a review
September 8, 2026 22:14
Removed unused permissions and workflow_dispatch trigger. Updated various commands for better performance and consistency.
mohanchen
approved these changes
Sep 9, 2026
7 tasks
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.
The CPU test workflow ran on the generic
X64label with no workingcompiler cache:
/tmp/ccacheis lost when ephemeral ECI pods are destroyed,and
X64also matches the legacy and GPU runners, so jobs land on randommachines.
This PR keeps the existing workflow layout unchanged (test steps, -j8 and
everything else untouched) and only adds what is needed for the
runner/cache migration:
[self-hosted, cpu, linux-x64]so they only land on theACK/ECI CPU pool.
actions/cache, keyed on the compilerfingerprint (8 GiB cap); the stale
/tmp/ccachevolume mount is removed.push: developtrigger so the default branch builds the publiccache baseline that PRs can restore (PR-scoped caches cannot be shared).
ccache --show-statsto the job summary for rollout verification.Validated in isolation at 059cbe7 on ACK/ECI (ecs.c6.4xlarge, 16 vCPU,
300 GiB ephemeral storage, Docker overlay2): cold build 20m01s, full test
suite 17m33s (18/18 groups pass), warm-cache rebuild 1m04s, ccache hit rate
3298/3300 (99.94%). The first PR run on the new pool with a warm cache
finished in 33.6 min vs the 62-67 min baseline of the old setup.
Note: no redundant
-DCMAKE_CXX_COMPILER_LAUNCHER=ccacheis added sincethe top-level CMakeLists.txt already sets it when ccache is detected.
Reminder
AGENTS.mdanddocs/developers_guide/agent_governance.md.source/changes. — none;.github/workflows/test.ymlonly.