[libvirt] [jenkins-ci PATCH] Use shallow git clones for projects
Daniel P. Berrangé
berrange at redhat.com
Tue Aug 27 13:12:12 UTC 2019
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.
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 ?
> ---
> guests/playbooks/build/jobs/prepare.yml | 1 +
> jenkins/jobs/autotools.yaml | 1 +
> jenkins/jobs/generic.yaml | 1 +
> jenkins/jobs/go.yaml | 1 +
> jenkins/jobs/perl-modulebuild.yaml | 1 +
> jenkins/jobs/python-distutils.yaml | 1 +
> 6 files changed, 6 insertions(+)
>
> diff --git a/guests/playbooks/build/jobs/prepare.yml b/guests/playbooks/build/jobs/prepare.yml
> index 576afbc..35ca9e4 100644
> --- a/guests/playbooks/build/jobs/prepare.yml
> +++ b/guests/playbooks/build/jobs/prepare.yml
> @@ -5,6 +5,7 @@
> version: '{{ git_branch }}'
> dest: '{{ name }}'
> force: yes
> + depth: 1
> when:
> - inventory_hostname in machines
>
> diff --git a/jenkins/jobs/autotools.yaml b/jenkins/jobs/autotools.yaml
> index f04ec17..1a85781 100644
> --- a/jenkins/jobs/autotools.yaml
> +++ b/jenkins/jobs/autotools.yaml
> @@ -27,6 +27,7 @@
> after: true
> skip-tag: true
> wipe-workspace: false
> + shallow-clone: true
> triggers:
> - reverse:
> jobs: '{obj:parent_jobs}'
> diff --git a/jenkins/jobs/generic.yaml b/jenkins/jobs/generic.yaml
> index ca69513..f58945e 100644
> --- a/jenkins/jobs/generic.yaml
> +++ b/jenkins/jobs/generic.yaml
> @@ -27,6 +27,7 @@
> after: true
> skip-tag: true
> wipe-workspace: false
> + shallow-clone: true
> triggers:
> - reverse:
> jobs: '{obj:parent_jobs}'
> diff --git a/jenkins/jobs/go.yaml b/jenkins/jobs/go.yaml
> index 1bdcb5f..dd3c5d4 100644
> --- a/jenkins/jobs/go.yaml
> +++ b/jenkins/jobs/go.yaml
> @@ -27,6 +27,7 @@
> after: true
> skip-tag: true
> wipe-workspace: false
> + shallow-clone: true
> triggers:
> - reverse:
> jobs: '{obj:parent_jobs}'
> diff --git a/jenkins/jobs/perl-modulebuild.yaml b/jenkins/jobs/perl-modulebuild.yaml
> index 7173493..0ea271e 100644
> --- a/jenkins/jobs/perl-modulebuild.yaml
> +++ b/jenkins/jobs/perl-modulebuild.yaml
> @@ -27,6 +27,7 @@
> after: true
> skip-tag: true
> wipe-workspace: false
> + shallow-clone: true
> triggers:
> - reverse:
> jobs: '{obj:parent_jobs}'
> diff --git a/jenkins/jobs/python-distutils.yaml b/jenkins/jobs/python-distutils.yaml
> index f56794c..a3eb076 100644
> --- a/jenkins/jobs/python-distutils.yaml
> +++ b/jenkins/jobs/python-distutils.yaml
> @@ -27,6 +27,7 @@
> after: true
> skip-tag: true
> wipe-workspace: false
> + shallow-clone: true
> triggers:
> - reverse:
> jobs: '{obj:parent_jobs}'
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 :|
More information about the libvir-list
mailing list