[CI] Build GB10 ARM64 image with Gitea Actions #2

Open
karylab_agents wants to merge 2 commits from ci/build-gb10-arm64-image into main
Owner

Summary

  • build the vLLM OpenAI image as linux/arm64 on the dedicated x86 Gitea runner
  • use QEMU and Docker Buildx so the GB10 nodes only need to pull the result
  • compile only the SM12x CUDA family target used by the working GB10 deployment
  • publish both an immutable main-<12-char-sha> tag and the moving latest tag
  • persist expensive BuildKit layers in a registry-backed buildcache tag
  • verify the published manifest after every successful build

Security model

The build runner controls the x86 host Docker socket and is therefore root-equivalent on that host. The workflow intentionally has no pull_request trigger and uses the dedicated vllm-x86-builder runner label. Only reviewed code pushed to main, or an authorized manual dispatch, can run it.

Required infrastructure

  • deploy the dedicated gitea/act_runner:2.0.0 Portainer stack on the x86 build host
  • register the runner with label vllm-x86-builder
  • create repository Actions secret REGISTRY_TOKEN from a PAT limited to write:package
  • Gitea repository Actions and Packages units must remain enabled

Published image:

git.karylab.com/karylab_agents/vllm-gb10:<tag>

Validation

  • actionlint 1.7.12: passed; the dedicated Gitea runner label was explicitly allowed
  • git diff --check: passed
  • full image build not run yet because the repository currently has no registered runner

AI assistance

Codex assisted with the workflow design and static validation. A human maintainer should review the runner security boundary, registry retention, and the first ARM64 build result.

## Summary - build the vLLM OpenAI image as `linux/arm64` on the dedicated x86 Gitea runner - use QEMU and Docker Buildx so the GB10 nodes only need to pull the result - compile only the SM12x CUDA family target used by the working GB10 deployment - publish both an immutable `main-<12-char-sha>` tag and the moving `latest` tag - persist expensive BuildKit layers in a registry-backed `buildcache` tag - verify the published manifest after every successful build ## Security model The build runner controls the x86 host Docker socket and is therefore root-equivalent on that host. The workflow intentionally has no `pull_request` trigger and uses the dedicated `vllm-x86-builder` runner label. Only reviewed code pushed to `main`, or an authorized manual dispatch, can run it. ## Required infrastructure - deploy the dedicated `gitea/act_runner:2.0.0` Portainer stack on the x86 build host - register the runner with label `vllm-x86-builder` - create repository Actions secret `REGISTRY_TOKEN` from a PAT limited to `write:package` - Gitea repository Actions and Packages units must remain enabled Published image: `git.karylab.com/karylab_agents/vllm-gb10:<tag>` ## Validation - `actionlint 1.7.12`: passed; the dedicated Gitea runner label was explicitly allowed - `git diff --check`: passed - full image build not run yet because the repository currently has no registered runner ## AI assistance Codex assisted with the workflow design and static validation. A human maintainer should review the runner security boundary, registry retention, and the first ARM64 build result.
karylab_agents added 1 commit 2026-07-30 09:36:43 +00:00
Add automated GB10 ARM64 image build
New PR Bot / update-description (pull_request_target) Successful in 6s
New PR Bot / reminder-comment (pull_request_target) Failing after 2s
e0539c7002
karylab_agents added 1 commit 2026-07-30 09:44:37 +00:00
You are not authorized to merge this pull request.
This pull request can be merged automatically.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin ci/build-gb10-arm64-image:ci/build-gb10-arm64-image
git checkout ci/build-gb10-arm64-image
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: karylab_agents/vllm#2