Skip to content

ci(docker): build each platform on a native runner - #53

Merged
turnrye merged 2 commits into
n7tae:masterfrom
turnrye:ci/native-arm-builds
Oct 16, 2026
Merged

turnrye merged 2 commits into
n7tae:masterfrom
turnrye:ci/native-arm-builds

Conversation

@turnrye

@turnrye turnrye commented Oct 15, 2026 •

Copy link
Copy Markdown
Collaborator

The mrefd image took 20–30 minutes to build because arm64 and arm/v7 compiled OpenDHT and mrefd under QEMU on an x86 runner. The workflow also ran on every push and pull request, including config-only changes like #51, and Dependabot pull requests ran every workflow twice.

Change:

  • build with Docker's github-builder reusable workflow, one native runner per platform (arm64 and arm/v7 on ubuntu-24.04-arm), merged into the same multi-arch tags; pushed images also get signed build provenance
  • only run the mrefd publish when a file that goes into the image changes (tag pushes always run)
  • cancel superseded pull request builds
  • skip push builds on dependabot/** branches, since their pull requests build them

Testing on my fork: all three platforms built in 2 min 53 s, against 21–30 min before, and arm/v7 built natively without QEMU. The image has the same tags, platforms and labels, runs as uid 65532, and starts on arm/v7.

turnrye and others added 2 commits October 15, 2026 06:39
The mrefd image took 20-30 minutes because arm64 and arm/v7 compiled
OpenDHT and mrefd under QEMU, and it ran on every push and pull request.
Build with Docker's github-builder reusable workflow instead, which puts
each platform on its own runner (Arm on ubuntu-24.04-arm) and merges the
results, and only run when a file that goes into the image changes.
Pushed images also get signed build provenance.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QqGWMRrYCN6Z52s2b3Gyj6
Dependabot's branches live in this repository, so every update ran each
workflow twice: once for the push and once for the pull request. Skip
the push for dependabot/** branches.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QqGWMRrYCN6Z52s2b3Gyj6
@turnrye
turnrye force-pushed the ci/native-arm-builds branch from 5212173 to 87ece25 Compare October 15, 2026 11:39
@turnrye

turnrye commented Oct 15, 2026

Copy link
Copy Markdown
Collaborator Author

@n7tae sorry that I missed these improvements on my first go -- please let me know if you're comfortable with me landing these as well.

@n7tae

n7tae commented Oct 15, 2026

Copy link
Copy Markdown
Owner

I am fine with this. I just ask that if you need to change any mrefd sources, please tag me.

@turnrye
turnrye merged commit e28134a into n7tae:master Oct 16, 2026
9 checks passed
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