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-.*$/
+
+
# 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
+
+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
+
+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
+
+
+# Cross compiled build jobs
+
armv6l-debian-9:
<<: *cross_build_extra_job_definition
image: quay.io/libvirt/buildenv-libvirt-debian-9-cross-armv6l:latest
--
2.24.1