[libvirt] [jenkins-ci PATCH v2 1/6] jobs: Introduce autotools-website-job

Andrea Bolognani posted 6 patches 7 years ago
There is a newer version of this series
[libvirt] [jenkins-ci PATCH v2 1/6] jobs: Introduce autotools-website-job
Posted by Andrea Bolognani 7 years ago
libvirt recently dropped support for running on CentOS 6, but
the libvirt.org website still runs on that platform, so we
need to be able to at least build documentation and create
distribution tarballs a little while longer.

autotools-website-job is the template for an ad-hoc job that
does exactly that, thus guaranteeing that the bare minimum
functionality we still need to work in CentOS 6 will, even as
the library itself moves forward and possibly stops building
on the OS altogether.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
---
 jobs/autotools.yaml | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 67 insertions(+)

diff --git a/jobs/autotools.yaml b/jobs/autotools.yaml
index 0c164d3..9b26bc3 100644
--- a/jobs/autotools.yaml
+++ b/jobs/autotools.yaml
@@ -257,3 +257,70 @@
           recipients: '{obj:spam}'
           notify-every-unstable-build: true
           send-to-individuals: false
+
+- job-template:
+    id: autotools-website-job
+    name: '{name}-{branch}-website'
+    project-type: matrix
+    description: '{title} Website'
+    autogen_args: ''
+    workspace: '{name}-{branch}-website'
+    child-workspace: '.'
+    block-downstream: true
+    block-upstream: true
+    wrappers:
+      - timeout:
+          abort: true
+          type: absolute
+          timeout: 90
+          write-description: 'Aborted build after 90 minutes'
+    properties:
+      - build-discarder:
+          days-to-keep: 30
+          num-to-keep: 1000
+    scm:
+      - git:
+          url: git://n64.pufty.ci.centos.org/{name}.git
+          branches:
+            - origin/{branch}
+          clean:
+            after: true
+          skip-tag: true
+          wipe-workspace: false
+    triggers:
+      - reverse:
+          jobs: '{obj:parent_jobs}'
+      - pollscm:
+          cron: "H/20 * * * *"
+    axes:
+      - axis:
+          name: systems
+          type: slave
+          values: '{obj:machines}'
+    builders:
+      - shell: |
+          {global_env}
+          {local_env}
+
+          # This job type is specifically tailored for the libvirt project
+          # and won't work anywhere else. Checking for libvirt.spec.in is
+          # a quick way to make sure the template is not being misused
+          test -e libvirt.spec.in
+
+          mkdir build
+          cd build
+
+          # Disable libvirtd and macvtap support to cut down the number
+          # of dependencies we need to install on the build worker
+          ../autogen.sh --without-libvirtd --without-macvtap
+
+          # Build the website itself
+          $MAKE -j{smp} -C docs/
+
+          # Make sure we can build nightly source snapshots
+          $MAKE -j{smp} dist
+    publishers:
+      - email:
+          recipients: '{obj:spam}'
+          notify-every-unstable-build: true
+          send-to-individuals: false
-- 
2.14.3

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [jenkins-ci PATCH v2 1/6] jobs: Introduce autotools-website-job
Posted by Daniel P. Berrangé 7 years ago
On Thu, Apr 12, 2018 at 05:59:26PM +0200, Andrea Bolognani wrote:
> libvirt recently dropped support for running on CentOS 6, but
> the libvirt.org website still runs on that platform, so we
> need to be able to at least build documentation and create
> distribution tarballs a little while longer.
> 
> autotools-website-job is the template for an ad-hoc job that
> does exactly that, thus guaranteeing that the bare minimum
> functionality we still need to work in CentOS 6 will, even as
> the library itself moves forward and possibly stops building
> on the OS altogether.
> 
> Signed-off-by: Andrea Bolognani <abologna@redhat.com>
> ---
>  jobs/autotools.yaml | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 67 insertions(+)
> 
> diff --git a/jobs/autotools.yaml b/jobs/autotools.yaml
> index 0c164d3..9b26bc3 100644
> --- a/jobs/autotools.yaml
> +++ b/jobs/autotools.yaml
> @@ -257,3 +257,70 @@
>            recipients: '{obj:spam}'
>            notify-every-unstable-build: true
>            send-to-individuals: false
> +
> +- job-template:
> +    id: autotools-website-job
> +    name: '{name}-{branch}-website'
> +    project-type: matrix
> +    description: '{title} Website'
> +    autogen_args: ''
> +    workspace: '{name}-{branch}-website'
> +    child-workspace: '.'
> +    block-downstream: true
> +    block-upstream: true
> +    wrappers:
> +      - timeout:
> +          abort: true
> +          type: absolute
> +          timeout: 90
> +          write-description: 'Aborted build after 90 minutes'
> +    properties:
> +      - build-discarder:
> +          days-to-keep: 30
> +          num-to-keep: 1000
> +    scm:
> +      - git:
> +          url: git://n64.pufty.ci.centos.org/{name}.git
> +          branches:
> +            - origin/{branch}
> +          clean:
> +            after: true
> +          skip-tag: true
> +          wipe-workspace: false
> +    triggers:
> +      - reverse:
> +          jobs: '{obj:parent_jobs}'
> +      - pollscm:
> +          cron: "H/20 * * * *"
> +    axes:
> +      - axis:
> +          name: systems
> +          type: slave
> +          values: '{obj:machines}'
> +    builders:
> +      - shell: |
> +          {global_env}
> +          {local_env}
> +
> +          # This job type is specifically tailored for the libvirt project
> +          # and won't work anywhere else. Checking for libvirt.spec.in is
> +          # a quick way to make sure the template is not being misused
> +          test -e libvirt.spec.in
> +
> +          mkdir build
> +          cd build
> +
> +          # Disable libvirtd and macvtap support to cut down the number
> +          # of dependencies we need to install on the build worker
> +          ../autogen.sh --without-libvirtd --without-macvtap
> +
> +          # Build the website itself
> +          $MAKE -j{smp} -C docs/
> +
> +          # Make sure we can build nightly source snapshots
> +          $MAKE -j{smp} dist
> +    publishers:
> +      - email:
> +          recipients: '{obj:spam}'
> +          notify-every-unstable-build: true
> +          send-to-individuals: false

IMHO adding this big single-use only job template is not desirable
or needed. The point of templates is to provide reuse across many
projects. Just define the libvirt-website job using the generic-build-job
template instead.


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 :|

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [jenkins-ci PATCH v2 1/6] jobs: Introduce autotools-website-job
Posted by Andrea Bolognani 7 years ago
On Tue, 2018-04-17 at 10:52 +0100, Daniel P. Berrangé wrote:
> On Thu, Apr 12, 2018 at 05:59:26PM +0200, Andrea Bolognani wrote:
> > diff --git a/jobs/autotools.yaml b/jobs/autotools.yaml
> > index 0c164d3..9b26bc3 100644
> > --- a/jobs/autotools.yaml
> > +++ b/jobs/autotools.yaml
> > @@ -257,3 +257,70 @@
> >            recipients: '{obj:spam}'
> >            notify-every-unstable-build: true
> >            send-to-individuals: false
> > +
> > +- job-template:
> > +    id: autotools-website-job
> > +    name: '{name}-{branch}-website'
> > +    project-type: matrix
> > +    description: '{title} Website'
> > +    autogen_args: ''
> > +    workspace: '{name}-{branch}-website'
[...]

> IMHO adding this big single-use only job template is not desirable
> or needed. The point of templates is to provide reuse across many
> projects. Just define the libvirt-website job using the generic-build-job
> template instead.

Good point.

The only problem I can see with that approach is that such a job
would share the same workspace as the regular libvirt builds, which
is something that we don't want in general; however, given that the
website job is only going to be running on CentOS 6 and vice versa,
we can safely go ahead with it.

-- 
Andrea Bolognani / Red Hat / Virtualization

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list