Hi,
Following #1512[1], we now do a matrix build on each PR/push-to-master
for Debian Stable, Debian Testing, Ubuntu Bionic and Ubuntu
Focal. Additionally, there's a nightly build scheduled to run every day
for all four OSs. This will hopefully allow us to have fewer
regressions, especially when supporting newer GHC releases.
Internally we use pre-built Docker images to perform the builds using
GitHub Actions' built-in support[2]. The images are built from the
Dockerfiles hosted at
https://github.com/ganeti/ci-images and pushed to
Docker Hub automatically, whenever a new commit is pushed to the ci-images
repository. The images are also rebuilt once a week, to incorporate the
latest changes from the distributions.
The workflow for publishing the images currently uses a key for my own
personal Docker Hub account (which is fine), but it would be a good idea
to grant admin rights to the Docker Hub repo to someone else as well
(any volunteers?).
I'm aware of the limits Docker is going to impose beginning Nov 1[3]; I
would be very happy to move the images to the GitHub Packages Registry
(and actually attempted to do so), but GPR currently doesn't work with
the Actions Docker integration[4](!), at least not in a meaningful
way. That said, if anyone is willing and able to host a dedicated
docker registry and keep our images outside the "cloud", please speak up :)
Cheers,
Apollon
[1]
https://github.com/ganeti/ganeti/pull/1512
[2]
https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idcontainer
[3]
https://www.docker.com/blog/scaling-docker-to-serve-millions-more-developers-network-egress/
[4]
https://github.community/t/docker-pull-from-public-github-package-registry-fail-with-no-basic-auth-credentials-error/16358