Skip to content

ci(docker): use prebuilt Rust binaries by default#1027

Merged
jtoelke2 merged 5 commits intomainfrom
jtoelke/os-128-prebuilt-image-builds
Apr 30, 2026
Merged

ci(docker): use prebuilt Rust binaries by default#1027
jtoelke2 merged 5 commits intomainfrom
jtoelke/os-128-prebuilt-image-builds

Conversation

@jtoelke2
Copy link
Copy Markdown
Collaborator

Summary

Flip OS-49 Phase 4 Docker image builds to consume native Rust binaries as the default path. Docker now packages staged openshell-gateway / openshell-sandbox artifacts instead of compiling Rust inside Dockerfile.images.

Related Issue

https://linear.app/nvidia/issue/OS-49/migrate-github-runners-to-a-supported-solution

Changes

  • Promoted shadow-rust-native-build.yml to a reusable per-component, per-arch native Rust artifact workflow.
  • Reworked docker-build.yml into a per-arch shared-runner build matrix with local Buildx and a multi-arch manifest merge.
  • Removed the Rust builder stages from deploy/docker/Dockerfile.images.
  • Added tasks/scripts/stage-prebuilt-binaries.sh so local Docker builds stage native gateway/sandbox binaries automatically.
  • Removed the dead in-Docker Rust build-arg path from docker-build-image.sh.
  • Updated local fast-deploy scripts, bootstrap diagnostics, architecture docs, and cluster debug guidance for the prebuilt-binary path.

Testing

  • mise run pre-commit passes
  • RUSTC_WRAPPER= DOCKER_PLATFORM=linux/amd64 tasks/scripts/docker-build-image.sh gateway
  • RUSTC_WRAPPER= DOCKER_PLATFORM=linux/amd64 tasks/scripts/docker-build-image.sh cluster
  • Workflow YAML parse check for docker-build.yml, shadow-rust-native-build.yml, and shadow-docker-build.yml
  • git diff --check
  • Unit tests covered by mise run pre-commit
  • E2E tests added/updated (if applicable)

Note: two default parallel mise run pre-commit reruns hit a pre-existing /proc timing flake in openshell-sandbox test proxy::tests::resolve_process_identity_denies_fork_exec_shared_socket_ambiguity. The same test passed when rerun directly, and final pre-commit passed with RUST_TEST_THREADS=1.

Checklist

  • Follows Conventional Commits
  • Commits are signed off (DCO)
  • Architecture docs updated (if applicable)

@jtoelke2 jtoelke2 requested a review from a team as a code owner April 28, 2026 22:22
@jtoelke2 jtoelke2 force-pushed the jtoelke/os-128-prebuilt-image-builds branch 2 times, most recently from 16ffce8 to 7d13a8f Compare April 28, 2026 23:20
Flip Docker image builds to consume staged native Rust artifacts, remove in-Docker Rust build stages, and publish per-arch images with a manifest merge.

Add local staging support for prebuilt gateway and sandbox binaries so development image builds continue to work without CI artifacts.

Signed-off-by: Jonas Toelke <jtoelke@nvidia.com>
@jtoelke2 jtoelke2 force-pushed the jtoelke/os-128-prebuilt-image-builds branch from 7d13a8f to 28c3c60 Compare April 28, 2026 23:33
@jtoelke2 jtoelke2 requested a review from pimlock April 29, 2026 19:14
Comment thread tasks/docker.toml Outdated
Comment thread crates/openshell-vm/scripts/build-rootfs.sh Outdated
Comment thread tasks/scripts/cluster-deploy-fast.sh Outdated
Comment thread .github/workflows/shadow-rust-native-build.yml
Comment thread .github/workflows/shadow-rust-native-build.yml
Comment thread .github/workflows/docker-build.yml
Comment thread .github/workflows/docker-build.yml
@github-actions
Copy link
Copy Markdown

@jtoelke2 jtoelke2 merged commit a656ed7 into main Apr 30, 2026
23 checks passed
@jtoelke2 jtoelke2 deleted the jtoelke/os-128-prebuilt-image-builds branch April 30, 2026 00:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants