ci(e2e): build functions one at a time - #39
Merged
Merged
Conversation
e2e.yaml runs on pull_request_target, so a pull request is tested with main's copy of this workflow, not its own. #38 moves the composition functions to Python and needs UP_MAX_CONCURRENCY=1 here: every Python function build mounts the same pip-cache Docker volume, and on a fresh runner concurrent builds fail creating it with "mkdir ...: file exists". Its e2e hit that on 6 of 6 attempts. It cannot pick the fix up from its own branch, so it has to land here first. No effect on the current KCL functions, which have no such build step.
kaessert
approved these changes
Sep 29, 2026
ytsarev
enabled auto-merge (squash)
September 29, 2026 12:00
ytsarev
disabled auto-merge
September 29, 2026 12:08
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.
Unblocks the e2e for #38.
e2e.yamlruns onpull_request_target, so a pull request is always tested with main's copy of this workflow, never its own. #38 moves the composition functions to Python, and Python function builds share one pip-cache Docker volume; on a fresh runner, concurrent builds fail withmkdir ...: file exists. #38's e2e hit that on 6 of 6 attempts, and it can't pick up the fix from its own branch.This adds only
UP_MAX_CONCURRENCY: "1"toe2e.yaml. It has no effect on the current KCL functions. #38 carries the same change forci.yamlandcomposition-tests.yaml, which do run from the PR branch.Root cause is in
up's Python builder (internal/xpkg/functions/python_sdk.go), which mounts the shared volume withoutNoCopyover a 38 MB pre-seeded pip cache in the build image. This line can go once that's fixed upstream.