devcontainer: allow BUILDROOT_OUTPUT to be overridden - #31
Merged
Merged
Conversation
swift-define computed BUILDROOT_OUTPUT unconditionally from WORKING_DIR and
SWIFT_TARGET_ARCH, so a caller whose output tree is somewhere else could not
use install-swift.sh at all. The toolchain CI builds into a persistent
directory on the runner's own disk (O=/mnt/br/shared), which no combination
of those two variables can spell.
Give it the same "${VAR:=default}" treatment the other configurables already
have, so the existing layout stays the default and CI can point the script at
the tree it actually builds into.
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.
swift-definecomputedBUILDROOT_OUTPUTunconditionally fromWORKING_DIRandSWIFT_TARGET_ARCH, so a caller whose output tree lives elsewhere could not useinstall-swift.shat all.The toolchain CI builds into a persistent directory on the self-hosted runner's own disk (
O=/mnt/br/shared), which no combination of those two variables can spell. This givesBUILDROOT_OUTPUTthe same"${VAR:=default}"treatment the other configurables already have — the existing layout stays the default.Why
This unblocks using the prebuilt Swift toolchain in CI instead of building
host-swiftfrom source, which takes 5–6 hours and has now failed four separate ways (wasi-libc pin mismatch, stale-checkout API mismatch,-index-store-pathon the distro clang, and scattered CMake cache corruption from resumed builds).Verified end-to-end inside
colemancda/buildroot-swift:latest:The prebuilt clang is the same
swiftlang/llvm-projectcommit the source build was producing, and it supports-index-store-path— so it also resolves that failure directly.HOST_SWIFT_BUILD_CMDSis already guarded byif [ ! -d "$(SWIFT_LLVM_DIR)" ], so populatingbuild/usrandbuild/llvmmakesbuild-scriptskip entirely; no change toswift.mkis needed.