> On Dec 6, 2022, at 4:43 AM, Robert Munteanu <romb...@apache.org> 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.

Reply via email to