Move docker-builds to OSDC runners - #22106
Conversation
OSDC runner pods have no docker daemon, so the ci-image builds move to the in-cluster BuildKit pool. build.sh switches to `docker buildx build --push` when REMOTE_BUILDKIT is set and is otherwise unchanged, and the workflow drives it through test-infra's docker-build-remote-buildkit action, which registers the per-architecture remote builder and rides out a cold builder pool. The tag is now computed in the workflow rather than by calculate-docker-image, but it is the same string that action produced for `ci-image:<name>` consumers (executorch/ci-image:<name>-$(git rev-parse HEAD:.ci/docker)), so jobs still on linux_job_v2 keep resolving their images while the v3 migration lands separately. The orchestrator runner only streams the .ci/docker context to BuildKit and waits, so it drops to the smallest label of the matching architecture, and executorch-ubuntu-22.04-cuda-windows moves off the GPU runner it never used. Authored with Claude Code.
🔗 Helpful Links🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/22106
Note: Links to docs will display an error until the docs builds have been completed. ❌ 1 New Failure, 167 PendingAs of commit 5723f87 with merge base 9a2d135 ( NEW FAILURE - The following job has failed:
This comment was automatically generated by Dr. CI and updates every 15 minutes. |
This PR needs a
|
|
Correcting the arm64 label. The label naming is contradictory across sources: So both PRs now use |
A fork PR gets no OIDC token, so on OSDC a pull_request-triggered build cannot assume role/arc to push. Applying the ciflow/docker label tags the PR head and fires the push trigger with the PR's own SHA, which does work. pull_request stays for now and comes out once that path is proven. Authored with Claude Code.
Applying the label only pushes a tag if the tag is listed here, so the trigger added in the previous commit is inert without it. Authored with Claude Code.
Removing the pull_request trigger otherwise made rebuilding the images a thing contributors have to remember. The labeler applies ciflow/docker on the same paths docker-builds triggers on, which pytorchbot turns into the tag push. Authored with Claude Code.
a714fb0 to
0b1172b
Compare
arc.yaml maps linux.arm64.2xlarge to l-arm64g2-6-32 and ci-infra renamed that def to l-arm64g2-6-25, but neither name schedules: the three arm64 legs of the first run of this workflow sat queued for nearly four hours and were cancelled without a runner ever picking them up. mt-l-arm64g4-16-62 is the only arm64 label with live production evidence, and it is what pytorch/pytorch's own OSDC docker-builds uses. Authored with Claude Code.
0b1172b to
5723f87
Compare
Part 1 of moving ExecuTorch's Linux CI to OSDC. #22107 migrates
linux_job_v2->v3, #22108 the native jobs.OSDC pods have no docker daemon, so the builds move to the in-cluster BuildKit pool:
build.shswitches todocker buildx build --pushunderREMOTE_BUILDKIT, driven by test-infra'sdocker-build-remote-buildkitaction. The tag is computed in the workflow now, but it is the same stringcalculate-docker-imageproduced, so jobs still on v2 keep resolving.Also adds the
ciflow/dockertrigger, registers it inpytorch-probot.ymland auto-labels the paths that need a rebuild: a fork PR gets no OIDC token, so apull_request-triggered build cannot push on OSDC.pull_requeststays for now.Authored with Claude Code.