On Thu, Jan 26, 2023 at 06:41:50PM +0000, Eldon Stegall wrote:

> As far as baremetal goes, I find authenticated IPXE scripts work well
> for a number of these scenarios, and permit very dynamic allocation of
> resources. I have been a fan of the ignition/coreos/fcos strategy for
> baremetal deployment due to the capability to run the full system in
> memory, as writing packaging to disk can waste time and flash in my
> opinion. I strongly agree with the benefits of managing these components
> in the repo. Dockerfile, ignition config, or cloud-config would probably
> work.  Dockerfile makes sense to me if existing work in that direction
> has interest and docker is sufficiently flexible for the tests. That
> said, it may be easier to generate an appropriate cloud-config if no
> work is yet done on running tests inside docker.

One of the critical factors for QEMU CI is reproducability by
contributors. This is a critical reason why we want do CI
inside containers to the greatest extent possible. It lets
the maintainer eithuer pull down the same container build, or
rebuild the container image locally. This has given us a much
better ability to reproduce CI failures than we have before
we used containers so widely.

> I have looked through the .gitlab-cl.d directory in the repo, and it
> seems that there is existing work done with containers in the
> container-template.yml. Do we also incur minutes for our cirrus builds
> equivalent to the duration of the build on cirrus? Maybe relocation
> those builds would be the most effective? It seems that a number of
> builds unrelated to cirrus use containers already, or I am missing
> something?

We have a two phase CI pipeline. In the first phase we build all
the container images that we need. This uses cache, reusing layers
from containers in the previous build to reduce time spent. In
the second phase we run the actual QEMU build jobs inside the
containers we built in the first phase.

The cirrus jobs are special. We want gitlab to act as the single
frontend for all CI jobs. So we use a tool called cirrus-run in
the gitlab job to spawn a job on Cirrus CI and pull back the
results. This is only used for FreeBSD/macOS/Windows, which is
a pretty small part of our set of jobs.


With regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|


Reply via email to