Repository navigation
ci(nightly): share compiler-cache settings between warmer, PR Release and nightly Release - #30128
Conversation
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
red: cmux-next checks (god files, concurrency, crash safety, l10n); no finished base run on d271ffb to compare; do not merge until green; see lane-rules Shipped in:
|
There was a problem hiding this comment.
2 issues found across 13 files
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="scripts/ci/fleet-compilation-cache.sh">
<violation number="1" location="scripts/ci/fleet-compilation-cache.sh:24">
P2: The helper call has no timeout, so a hung fleet node blocks the build instead of falling back to local compilation. Bound the call with a timeout, and send its stderr to the build log instead of `/dev/null` so unhealthy-CAS fallbacks stay diagnosable.</violation>
</file>
<file name="scripts/ci/compile-app-host-test-product.sh">
<violation number="1" location="scripts/ci/compile-app-host-test-product.sh:250">
P2: A failing `fleet-compilation-cache.sh` is ignored here, so the build continues without the prefix-mapping and diagnostic settings and gets silent cache misses. Capture the output with a plain assignment so `set -e` stops the build on helper failure.</violation>
</file>
Reply with feedback, questions, or to request a fix.
View guided diff | Turn on auto-fix | Re-trigger cubic
| fleet_cas_socket="${CMUX_FLEET_CAS_SOCKET:-$fleet_cas_root/fleet-cas.sock}" | ||
| if [ -x "$fleet_cas_settings" ] && [ -S "$fleet_cas_socket" ]; then | ||
| fleet_settings='' | ||
| fleet_settings="$("$fleet_cas_settings" "$fleet_cas_socket" 2>/dev/null | head -n 8)" || fleet_settings='' |
There was a problem hiding this comment.
P2: The helper call has no timeout, so a hung fleet node blocks the build instead of falling back to local compilation. Bound the call with a timeout, and send its stderr to the build log instead of /dev/null so unhealthy-CAS fallbacks stay diagnosable.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At scripts/ci/fleet-compilation-cache.sh, line 24:
<comment>The helper call has no timeout, so a hung fleet node blocks the build instead of falling back to local compilation. Bound the call with a timeout, and send its stderr to the build log instead of `/dev/null` so unhealthy-CAS fallbacks stay diagnosable.</comment>
<file context>
@@ -0,0 +1,46 @@
+ fleet_cas_socket="${CMUX_FLEET_CAS_SOCKET:-$fleet_cas_root/fleet-cas.sock}"
+ if [ -x "$fleet_cas_settings" ] && [ -S "$fleet_cas_socket" ]; then
+ fleet_settings=''
+ fleet_settings="$("$fleet_cas_settings" "$fleet_cas_socket" 2>/dev/null | head -n 8)" || fleet_settings=''
+ fleet_plugin_ok=0
+ fleet_remote_ok=0
</file context>
| while IFS= read -r setting; do | ||
| fleet_cache_setting+=("$setting") | ||
| done < <(bash "$SCRIPT_DIR/fleet-compilation-cache.sh") |
There was a problem hiding this comment.
P2: A failing fleet-compilation-cache.sh is ignored here, so the build continues without the prefix-mapping and diagnostic settings and gets silent cache misses. Capture the output with a plain assignment so set -e stops the build on helper failure.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At scripts/ci/compile-app-host-test-product.sh, line 250:
<comment>A failing `fleet-compilation-cache.sh` is ignored here, so the build continues without the prefix-mapping and diagnostic settings and gets silent cache misses. Capture the output with a plain assignment so `set -e` stops the build on helper failure.</comment>
<file context>
@@ -255,40 +246,10 @@ build() {
- if [ "${CMUX_CI_DISABLE_COMPILATION_CACHE:-}" = 1 ]; then
- fleet_cache_setting=()
- fi
+ while IFS= read -r setting; do
+ fleet_cache_setting+=("$setting")
+ done < <(bash "$SCRIPT_DIR/fleet-compilation-cache.sh")
</file context>
| while IFS= read -r setting; do | |
| fleet_cache_setting+=("$setting") | |
| done < <(bash "$SCRIPT_DIR/fleet-compilation-cache.sh") | |
| local fleet_cache_output | |
| fleet_cache_output="$(bash "$SCRIPT_DIR/fleet-compilation-cache.sh")" | |
| while IFS= read -r setting; do | |
| fleet_cache_setting+=("$setting") | |
| done <<< "$fleet_cache_output" |
|
Found 2 test failures on Blacksmith runners: Failures
|
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
The nightly warmer and PR Release build used different Xcode compiler-cache settings from the nightly Release build, while sharing cache keys. This follow-up routes both through the same allowlisted
fleet-compilation-cache.shsettings so restored entries use compatible invocation settings.This addresses the independent review follow-up on #30061 at
beb297ffb5f5a77c7c7f539476c3c9f85df42c84and closes #30106. The regression test checks both workflow steps consume the shared settings helper.Validation:
python3 tests/test_ci_fleet_compilation_cache.py(7 tests)python3 scripts/cmux-next/prepush-gate.pyAgent session: agent session
🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need.Summary by cubic
Aligns the nightly warmer and PR Release Xcode builds with the nightly Release build's compiler-cache settings, so restored cache entries use compatible invocation settings.
scripts/ci/fleet-compilation-cache.shhelper, replacing the inline logic incompile-app-host-test-product.sh.Written for commit 14a5455. Summary will update on new commits.