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(a)redhat.com>
---
.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(a)redhat.com>