On Thu, Mar 26, 2020 at 12:35:34PM +0000, Daniel P. Berrangé wrote: > This patch adds x86_64 native CI jobs for all distros that we currently > build container images for. This is a superset of the Linux jobs run on > current Jenkins and Travis platforms. > > The remaining missing platforms are FreeBSD and macOS, neither of which > can use the shared runner container based infrastructure. > > We may add further native jobs in the future which are not x86_64 based, > if we get access to suitable hardware, thus the jobs all have an arch > prefix in their name, just like the cross-built jobs do. > > As with the cross-arch builds, the native jobs are split into two > groups. One group is run in all situations, while the other group is > only run on the master branch, or branches with a name prefix > 'ci-extra-'. This avoids the build time getting too long when > developers are testing their code prior to submission, while keeping > full coverage of code that is merged. > > Signed-off-by: Daniel P. Berrangé <berrange@xxxxxxxxxx> > --- > .gitlab-ci.yml | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 70 insertions(+) > > diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml > index 631c447793..85ab8424e1 100644 > --- a/.gitlab-ci.yml > +++ b/.gitlab-ci.yml > @@ -4,9 +4,30 @@ variables: > > stages: > - prebuild > + - native_build > - cross_build > > > +# Common templates > + > +# Default native build jobs that are always run > +.native_build_default_job_template: &native_build_default_job_definition > + stage: native_build > + script: > + - mkdir build > + - cd build > + - ../autogen.sh $CONFIGURE_OPTS || (cat config.log && exit 1) > + - $MAKE -j $(getconf _NPROCESSORS_ONLN) distcheck > + > +# Extra native build jobs that are only run post-merge, or > +# when code is pushed to a branch with "ci-extra-" name prefix > +.native_build_extra_job_template: &native_build_extra_job_definition > + <<: *native_build_default_job_definition > + only: > + - master > + - /^ci-extra-.*$/ As Andrea commented a few patches back, ci-full is probably a better prefix. > + > + > # Default cross build jobs that are always run > .cross_build_default_job_template: &cross_build_default_job_definition > stage: cross_build > @@ -25,6 +46,55 @@ stages: > - /^ci-extra-.*$/ > > > +# Native architecture build + test jobs > + > +x64-debian-9: > + <<: *native_build_extra_job_definition > + image: quay.io/libvirt/buildenv-libvirt-debian-9:latest > + > +x64-debian-10: > + <<: *native_build_default_job_definition > + image: quay.io/libvirt/buildenv-libvirt-debian-10:latest > + > +x64-debian-sid: > + <<: *native_build_extra_job_definition > + image: quay.io/libvirt/buildenv-libvirt-debian-sid:latest > + > +x64-centos-7: > + <<: *native_build_default_job_definition > + image: quay.io/libvirt/buildenv-libvirt-centos-7:latest > + > +x64-centos-8: > + <<: *native_build_extra_job_definition > + image: quay.io/libvirt/buildenv-libvirt-centos-8:latest Shouldn't we actually prefer the newer distros over the older ones in terms of what runs on all branches vs what runs only on master + a dedicated ci- prefixed branch? At least that makes much more sense to from the upstream POV. Everything else is just a nice to have. > + > +x64-fedora-30: > + <<: *native_build_default_job_definition > + image: quay.io/libvirt/buildenv-libvirt-fedora-30:latest > + > +x64-fedora-31: > + <<: *native_build_extra_job_definition > + image: quay.io/libvirt/buildenv-libvirt-fedora-31:latest Same here... > + > +x64-fedora-rawhide: > + <<: *native_build_default_job_definition > + image: quay.io/libvirt/buildenv-libvirt-fedora-rawhide:latest > + > +x64-opensuse-151: > + <<: *native_build_default_job_definition > + image: quay.io/libvirt/buildenv-libvirt-opensuse-151:latest > + > +x64-ubuntu-1604: > + <<: *native_build_default_job_definition > + image: quay.io/libvirt/buildenv-libvirt-ubuntu-1604:latest > + > +x64-ubuntu-1804: > + <<: *native_build_extra_job_definition > + image: quay.io/libvirt/buildenv-libvirt-ubuntu-1804:latest ...and here... With the distro versions swapped across the job definitions: Reviewed-by: Erik Skultety <eskultet@xxxxxxxxxx>