Skip to content

fix: split CPU docker build into native amd64/arm64 jobs to prevent 6h timeout#1418

Merged
sbryngelson merged 7 commits into
MFlowCode:masterfrom
sbryngelson:fix/docker-cpu-timeout
May 11, 2026
Merged

fix: split CPU docker build into native amd64/arm64 jobs to prevent 6h timeout#1418
sbryngelson merged 7 commits into
MFlowCode:masterfrom
sbryngelson:fix/docker-cpu-timeout

Conversation

@sbryngelson
Copy link
Copy Markdown
Member

@sbryngelson sbryngelson commented May 10, 2026

Summary

  • Fixes Devcontainers stale #1143 — the latest-cpu devcontainer image has never successfully published since v5.1.3 because the CPU build job consistently hits GitHub Actions' 6-hour limit
  • Root cause: the CPU job was QEMU-emulating linux/arm64 on a single x86 runner alongside linux/amd64, which takes >6h to compile MFC
  • Fix: split into two native jobs (ubuntu-22.04 for amd64, ubuntu-22.04-arm for arm64), mirroring the existing GPU build pattern — each finishes in ~1h
  • Also adds a weekly schedule trigger (Sunday midnight UTC) so the devcontainer stays fresh between releases

Changes to docker.yml

  • Matrix: add cpu entry for ubuntu-22.04-arm; remove QEMU emulation from the CPU job entirely
  • CPU build: drop platforms: linux/amd64,linux/arm64 and the custom mfcbuilder; tags now include the runner name (e.g. $TAG-cpu-ubuntu-22.04-arm) matching GPU convention
  • Manifests: use buildx imagetools create uniformly for both CPU and GPU manifest lists
  • Schedule: cron: '0 0 * * 0' weekly rebuild from master, tagged as nightly
  • Misc: bump GPU build-push-action@v5v6; make workflow_dispatch tag optional

Test plan

  • Verify the fix/docker-cpu-timeout branch workflow runs complete without the CPU job timing out
  • Confirm latest-cpu manifest resolves both linux/amd64 and linux/arm64 after a successful run

…h timeout

The CPU container job was using QEMU to cross-compile linux/arm64 on a
single x86 runner, consistently hitting the 6-hour GitHub Actions limit.
All recent releases (v5.1.3 through v5.3.1) failed to publish latest-cpu.

Fix: split into two native jobs (ubuntu-22.04 and ubuntu-22.04-arm),
mirroring the existing GPU build pattern. Remove QEMU. Merge into a
multi-arch manifest in the manifests job using buildx imagetools.

Also: add weekly schedule trigger (Sunday midnight UTC) so the devcontainer
image stays fresh between releases, and bump build-push-action to v6.
@qodo-code-review
Copy link
Copy Markdown
Contributor

ⓘ You've reached your Qodo monthly free-tier limit. Reviews pause until next month — upgrade your plan to continue now, or link your paid account if you already have one.

@sbryngelson sbryngelson merged commit 0de8a91 into MFlowCode:master May 11, 2026
27 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

Devcontainers stale

1 participant