Page MenuHomePhabricator

Make ARM releases
Open, In Progress, Needs TriagePublic

Description

There is very little here holding us back from making ARM releases at this point. We should probably not start making then until we have our version scheme implemented though so we know how to name the resulting ARM images different to the AMD64 ones, though multi-architecture may make this a non-issue.

Also FYI, recently in building an ARM version of things on a Hetzner I found I had to run this additional Docker setup command to get the builds to work:

docker run --privileged --rm tonistiigi/binfmt --install all (from https://github.com/docker/buildx/issues/1986#issuecomment-1664983533.

Also ref: https://docs.docker.com/build/building/multi-platform/

Event Timeline

lojo_wmde changed the task status from Open to In Progress.Jul 29 2024, 7:43 AM
lojo_wmde claimed this task.
lojo_wmde moved this task from Doing to In Review on the Wikibase Suite Team (Sprint-∞) board.
lojo_wmde moved this task from In Review to Doing on the Wikibase Suite Team (Sprint-∞) board.

Work for making multi-platform builds is mostly complete in this PR: https://github.com/wmde/wikibase-release-pipeline/pull/735

The only hinderance left is that multi-platform Docker builds take forbidding long to run on GitHub Actions due to QEMU emulation of the ARM side. We have a few options for adding an external runner to fix this which we can explore.

After testing once again with a longer timeout the full set of multi-platform image builds completed in about 42 mins using the provided Github Actions runners with QEMU emulation for the ARM builds. This is great news, and likely means we won't want to bother adding an additional standalone job runner configuration to accomplish the builds.

The only question I currently see remaining is whether running the test suite against the ARM builds under QEMU emulation will take an unacceptable amount of time or not. This has not yet been tested, and I presume it will fairly time consuming.

One possible solution could be to do multi-platform builds and test runs across both platforms before release. This could be viable given that failures unique to the ARM build have proven quite unlikely. This is evidenced by my own use of ARM builds locally for the last year. I have not a single time seen a test failure that didn't also happen in CI on the AMD builds there. If we did this then CI build and test runs would take the same time they do now, but kicking off a release may take ~1-2 hours per image (guesstimate)

The successful multi-platform build log can be seen here: https://github.com/wmde/wikibase-release-pipeline/actions/runs/10443948331

And additional notes are being accumulated and maintained in this document in the repo: https://github.com/wmde/wikibase-release-pipeline/blob/d03166243a9dc2d42ecf92ff605f0b2afafc4312/docs/multi-platform-build-notes.md

  NODES
HOME 1
Note 3
os 4