Repository navigation
ci: expand an empty E2E -only-testing list under bash 3.2 - #15208
Conversation
"${ONLY_TESTING[@]}" on an empty array is an unbound-variable error under
set -u in bash 3.2, macOS's /bin/bash. The E2E run step builds the list
from TEST_SELECTORS, so an empty selector list stopped the step before
xcodebuild. tests/test_ci_e2e_compilation_cache.py's missing-manifest test
runs exactly that case and failed on macOS since #13908. Expand it with
${ONLY_TESTING[@]+"${ONLY_TESTING[@]}"}, which bash 3.2 accepts.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
Warning Review limit reachedNext included review available in 11 seconds. View limit detailsLimit details: You’ve used all 10 included reviews currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: Repository: manaflow-ai/cmux/.coderabbit.yaml Review profile: ASSERTIVE Plan: Advanced Run ID: 📒 Files selected for processing (1)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
All contributors have signed the CLA ✍️ ✅ |
|
Dogfood build of cmux DEV pr-15208-b247399a.app The link opens this exact commit in the cmux dev menu bar app. The build starts on each push and the page waits until it is ready; a newer push replaces it. It signs in against production, so Cloud or backend changes still need a tagged build with a development backend. |
|
Merge receipt for |
1b55596 Move saved sessions between cmux installs: restore-session --from / --export (manaflow-ai#14861) 0e1ab96 ci: force relay rollover renewal in release gate (manaflow-ai#15212) a3d6070 Fix Cloud projection reads mutating observation state (manaflow-ai#15126) 5171e34 docs: say Cloud turns on per Mac through a staged rollout (manaflow-ai#15194) 53395a8 Recover a missing team scope instead of failing Mac pairing (manaflow-ai#15083) 454f191 ci: read the gui backlog eight runs at a time in late placement (manaflow-ai#15207) 147a616 ci: cmux-tui's release-path macOS builds take the owned side lane first (manaflow-ai#15184) c74b646 License the cmux server software under the Business Source License 1.1 (manaflow-ai#15206) 0bb41fa test: restore the first responder before the dictation paste test's Cmd+V (manaflow-ai#15201) b17bc18 ui-tests: empty Diagnostics Reporter's queue before closing it (manaflow-ai#15189) d5f71c5 ci: iOS picker charges runs by their live jobs, not their titles (manaflow-ai#15188) 3c2cb96 Pane focus memory and New Pane (Auto Layout) (manaflow-ai#15125) 89519d8 ci: expand an empty E2E -only-testing list under bash 3.2 (manaflow-ai#15208) f225777 Ghostty config live reload: keep saves during a reload, reload a theme preview once, watch XDG_CONFIG_HOME (manaflow-ai#15191) 714ec53 ci: stop at a full disk on clonefile, and never nest a seed clone (manaflow-ai#15199) 48d662a ci: ui-tests dispatches UI tests with main's dispatcher (manaflow-ai#15193) 3412812 Restore the Cloud template terminal in place after a daemon restart (manaflow-ai#15200) # Conflicts: # .github/workflows/ci-macos.yml # .github/workflows/ci.yml # .github/workflows/cmux-tui-build-package.yml # .github/workflows/cmux-tui.yml
Summary
The E2E run step in
.github/actions/e2e-run-tests/action.ymlpasses"${ONLY_TESTING[@]}"to xcodebuild underset -euo pipefail. macOS's/bin/bashis 3.2, where expanding an empty array underset -uis an unbound-variable error. The step buildsONLY_TESTINGfromTEST_SELECTORS, so an empty selector list stops it before xcodebuild runs.tests/test_ci_e2e_compilation_cache.py::test_a_missing_manifest_fails_instead_of_silently_compilingruns that case withONLY_TESTING=(). On a Mac it failed withONLY_TESTING[@]: unbound variableinstead of the missing-manifest error, and it has done so since the test landed in #13908. Linux guard runners use a newer bash, so CI did not show it.Both expansions now use
${ONLY_TESTING[@]+"${ONLY_TESTING[@]}"}, which expands to nothing for an empty array in bash 3.2 and 5 alike.tests/test_seed_derived_data.py::test_the_trusted_pool_seeds_each_extra_root_as_its_own_lanealso looked broken on main, but that was a local artifact. The test runs the workflow step, which callsscripts/ci/clear-dirs.shby a relative path. It passes from the repository root, where ci-guards.yml runs it, and fails only when run fromtests/. No change is needed there.Testing
tests/test_ci_e2e_compilation_cache.pyon macOS: 24 OK. It failed 1 of 24 before this change.tests/test_ci_focused_test_selectors.py,tests/test_ci_main_regression_bisect.py,tests/test_ci_app_host_pipe_capture.py,tests/test_ci_app_host_home_isolation.py,tests/test_ci_self_hosted_guard.sh. These are the other tests that read this action.tests/test_seed_derived_data.pyfrom the repository root: 62 OK on main.Changelog
none
🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.Summary by cubic
Fixes the E2E run step on macOS by expanding
ONLY_TESTINGwith${ONLY_TESTING[@]+"${ONLY_TESTING[@]}"}. Bash 3.2 treats${ONLY_TESTING[@]}on an empty array as unbound underset -u, so an empty selector list errored before xcodebuild ran, breaking the missing-manifest test case.Note:
test_seed_derived_data.py's trusted-pool seed test only fails when run fromtests/; it passes from the repository root, where ci-guards.yml runs it. No change needed.Written for commit b247399. Summary will update on new commits.