[libvirt] [jenkins-ci PATCH] Use shallow git clones for projects

Erik Skultety eskultet at redhat.com
Tue Aug 27 13:39:53 UTC 2019


On Tue, Aug 27, 2019 at 02:12:12PM +0100, Daniel P. Berrangé wrote:
> On Tue, Aug 27, 2019 at 02:56:02PM +0200, Erik Skultety wrote:
> > First of all, we don't need the full history for builds and we can save
> > some time during the prepare phase. The disk footprint is about 5x
> > smaller, but the most important thing is the repo clone duration
> > difference e.g. in libvirt's case is quite significant:
> >
> > full history:
> > real 3m45.236s
> > user 1m53.074s
> > sys 0m15.577s
> >
> > depth 1:
> > real 0m14.868s
> > user 0m2.215s
> > sys 0m0.906s
>
> On Jenkins, the perf diff should be negligible. The CI build host
> already has a full git clone with entire history. So all the worker
> VMs are effectively cloning from localhost, not hitting the WAN.
> They also are never doing a full git clone, just a git pull to get
> the delta from the previous run.
>
> Personally I find it useful to have the history when I'm debugging
> problems on my build host/VM, so I'm not really in favour of doing
> this change. It would make the VMs setup less usable for me, so I
> prefer to accept the time penalty.

Hmm, I have often machines that come and go, could we make this a variable
then? If set we'd make a shallow copy and by default leave it 'false' for the
local CI build host and drop the jenkins changes?

>
> Is there something we can do to make the standalone VMs pull from
> a repo on the build host by default, instead of fetching from
> libvirt.org. Or to get their initial clone from the host, but
> then get subsequent incremental updates from libvirt.org ?

For that, you need to change the git_url in
guests/playbooks/build/jobs/defaults.yml locally, not something we can make
universal for everyone.

Erik




More information about the libvir-list mailing list