Repository navigation
fix(ci): give the wrapper smoke a Go toolchain and a deletable work tree - #2669
Merged
Merged
Conversation
The v0.12.1 release smoke failed on every leg in Phase 13w, the package-wrapper install gate added in #2664: - macOS: the runner images have no Go on PATH, and SMOKE_REQUIRE_WRAPPERS=1 rightly fails without one. pr-smoke and the three release smoke jobs now set up Go from pkg/go/go.mod, with the same pinned step the wrapper test job uses. - Windows: `mkdir -m 700` changes the mode in a second step, which MSYS2 cannot do under the smoke profile's owner-only DACL. mktemp -d sets the mode at creation. - Linux: the runner's older Go downloaded the 1.26.1 toolchain into the smoke profile's HOME. Go writes its module cache read-only, so the harness could not delete its profile afterwards. All Go state now stays in the wrapper's own work tree, and its cleanup restores write permission before removing it. npm and PyPI passed on every leg that reached them; the gate itself is unchanged. Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
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 v0.12.1 release run (38931715884) failed in the smoke stage on every leg, in Phase 13w: the package-wrapper install gate added in #2664. Three separate causes, one per platform family:
FAIL go: SMOKE_REQUIRE_WRAPPERS=1 but go is not available— the runner images have no Go on PATHactions/setup-go(go-version-filepkg/go/go.mod, the pinned step_test.yml's wrapper job already uses) inpr-smokeand all three release smoke jobsmkdir: cannot change permissions of …cbm-smoke-wrappers…—mkdir -m 700changes the mode in a second step, which MSYS2 cannot do under the smoke profile's owner-only DACLmktemp -d(mode set at creation; its parent dirs in the same profile aremktemp -ddirs too)smoke-test: ALL PASSED, then thousands ofrm: cannot remove …/home/go/pkg/mod/golang.org/toolchain@…: Permission denied— the runner's older Go downloaded the 1.26.1 toolchain into the smoke profile's HOME, read-onlyGOPATH,GOMODCACHE,GOCACHE) stays in the wrapper's own work tree; its cleanup restores write permission before removing itnpm and PyPI passed on every leg that reached them. The gate is unchanged:
SMOKE_REQUIRE_WRAPPERS=1still fails a leg that cannot install a wrapper.Proof (local, macOS, real v0.12.0 darwin-arm64 archive):
GOTOOLCHAIN=go1.26.1): with main's script, 11,510 read-only files are left in HOME andrm -rffails (rc 1); with this change, 0 read-only files, HOME deletes cleanly, the work tree is gone,OK go.OKwith this change.pr-smokelegs exercise them before merge.