> On Dec 6, 2022, at 4:43 AM, Robert Munteanu <[email protected]> wrote:
>
> I see two alternatives so far:
>
> 1. Moving to GitHub actions
Apache Yetus did the move from docker hub builds to Github Actions
because ...
> 2. Use hooks to install qemu and 'fake' a multi-arch build on Docker
> Hub
... when I tried to do this a bit over a year ago, the kernel on the
docker hub machines didn't support qemu.
https://github.com/docker/roadmap/issues/109 seems to still be open so that
functionality is likely still missing. That said, the project kept the hook in
place in case it is ever supported. So...
> How are other projects handling this? Or does anyone have any ideas
> that they can share?
... the build is pretty much contained in two files:
https://github.com/apache/yetus/blob/main/.github/workflows/ghcr.yml
https://github.com/apache/yetus/blob/main/hooks/build
The build file does a lot of extra work that may/may not be desired
(such as building cascading container images), but it should at least work on
Linux and macOS. Being able to run it locally after a bit of multi-arch setup
is a _huge_ debugging win vs. going all-in on a native GH Action method.
The hooks/build file is also still run on docker hub so as to not break
users who are still pulling from there. At some point, we'll have a discussion
in the project about getting rid of it but for now, everything is relatively
consistent between the two container repos. Just that docker hub repo has one
built for only x86 and the GHCR has both arm and x86 as a multi-arch image.
Some unsolicited advice: keep in mind the bus factor. A lot of
projects have wildly complex build systems that are maintained by one maybe two
people. While those build processes may be faster or better or more functional
or whatever... at some point other people will need to understand it.