ci: Run all jobs, for all branches, all the time

After recent changes (increasing the parallelism of the pipeline
by reducing the number of stages, introducing FreeBSD builds that
take longer than any other job), the difference between running
the full pipeline or a reduced one has basically disappeared: in
both cases, the completion time is around 25-35 minutes depending
on whether containers need to be rebuilt and how many shared
runners are available.

Reduce the complexity of our .gitlab-ci.yml and make things
simpler for contributors by simply always running all jobs.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
Andrea Bolognani 2020-06-26 20:11:58 +02:00
parent 207a5009ea
commit 4268e18753
1 changed files with 53 additions and 90 deletions

View File

@ -15,8 +15,7 @@ stages:
# Common templates
# Containers that are necessary for the default pipeline
.container_default_job_template: &container_default_job_definition
.container_job_template: &container_job_definition
image: docker:stable
stage: containers
services:
@ -33,23 +32,15 @@ stages:
after_script:
- docker logout
# Containers that are only needed for the full pipeline
.container_extra_job_template: &container_extra_job_definition
<<: *container_default_job_definition
only:
- master
- /^ci-full-.*$/
# We build many containers which can be useful to debug problems but are not
# needed for the pipeline itself to complete: those sometimes fail, and when
# that happens it's mostly because of temporary issues with Debian sid. We
# don't want those failures to affect the overall pipeline status
.container_optional_job_template: &container_optional_job_definition
<<: *container_extra_job_definition
<<: *container_job_definition
allow_failure: true
# Default native build jobs that are always run
.native_build_default_job_template: &native_build_default_job_definition
.native_build_job_template: &native_build_job_definition
stage: builds
image: $CI_REGISTRY_IMAGE/ci-$NAME:latest
cache:
@ -64,18 +55,10 @@ stages:
- ../autogen.sh || (cat config.log && exit 1)
- $MAKE distcheck
# Extra native build jobs that are only run post-merge, or
# when code is pushed to a branch with "ci-full-" name prefix
.native_build_extra_job_template: &native_build_extra_job_definition
<<: *native_build_default_job_definition
only:
- master
- /^ci-full-.*$/
# Jobs that we delegate to Cirrus CI because they require an operating
# system other than Linux. These jobs will only run if the required
# setup has been performed on the GitLab account (see ci/README.rst).
.cirrus_build_default_job_template: &cirrus_build_default_job_definition
.cirrus_build_job_template: &cirrus_build_job_definition
stage: builds
image: registry.gitlab.com/libvirt/libvirt-ci/cirrus-run:master
script:
@ -85,19 +68,7 @@ stages:
- $CIRRUS_GITHUB_REPO
- $CIRRUS_API_TOKEN
.cirrus_build_extra_job_template: &cirrus_build_extra_job_definition
<<: *cirrus_build_default_job_definition
only:
variables:
- $CIRRUS_GITHUB_REPO
- $CIRRUS_API_TOKEN
refs:
- master
- /^ci-full-.*$/
# Default cross build jobs that are always run
.cross_build_default_job_template: &cross_build_default_job_definition
.cross_build_default_job_template: &cross_build_job_definition
stage: builds
image: $CI_REGISTRY_IMAGE/ci-$NAME-cross-$CROSS:latest
cache:
@ -112,74 +83,66 @@ stages:
- ../autogen.sh $CONFIGURE_OPTS || (cat config.log && exit 1)
- $MAKE
# Extra cross build jobs that are only run post-merge, or
# when code is pushed to a branch with "ci-full-" name prefix
.cross_build_extra_job_template: &cross_build_extra_job_definition
<<: *cross_build_default_job_definition
only:
- master
- /^ci-full-.*$/
# Native container build jobs
x64-centos-7-container:
<<: *container_default_job_definition
<<: *container_job_definition
variables:
NAME: centos-7
x64-centos-8-container:
<<: *container_default_job_definition
<<: *container_job_definition
variables:
NAME: centos-8
x64-centos-stream-container:
<<: *container_extra_job_definition
<<: *container_job_definition
variables:
NAME: centos-stream
x64-debian-9-container:
<<: *container_extra_job_definition
<<: *container_job_definition
variables:
NAME: debian-9
x64-debian-10-container:
<<: *container_default_job_definition
<<: *container_job_definition
variables:
NAME: debian-10
x64-debian-sid-container:
<<: *container_extra_job_definition
<<: *container_job_definition
variables:
NAME: debian-sid
x64-fedora-31-container:
<<: *container_extra_job_definition
<<: *container_job_definition
variables:
NAME: fedora-31
x64-fedora-32-container:
<<: *container_default_job_definition
<<: *container_job_definition
variables:
NAME: fedora-32
x64-fedora-rawhide-container:
<<: *container_default_job_definition
<<: *container_job_definition
variables:
NAME: fedora-rawhide
x64-opensuse-151-container:
<<: *container_default_job_definition
<<: *container_job_definition
variables:
NAME: opensuse-151
x64-ubuntu-1804-container:
<<: *container_extra_job_definition
<<: *container_job_definition
variables:
NAME: ubuntu-1804
x64-ubuntu-2004-container:
<<: *container_default_job_definition
<<: *container_job_definition
variables:
NAME: ubuntu-2004
@ -192,7 +155,7 @@ aarch64-debian-9-container:
NAME: debian-9-cross-aarch64
armv6l-debian-9-container:
<<: *container_extra_job_definition
<<: *container_job_definition
variables:
NAME: debian-9-cross-armv6l
@ -202,12 +165,12 @@ armv7l-debian-9-container:
NAME: debian-9-cross-armv7l
mips-debian-9-container:
<<: *container_extra_job_definition
<<: *container_job_definition
variables:
NAME: debian-9-cross-mips
mips64el-debian-9-container:
<<: *container_extra_job_definition
<<: *container_job_definition
variables:
NAME: debian-9-cross-mips64el
@ -227,7 +190,7 @@ s390x-debian-9-container:
NAME: debian-9-cross-s390x
aarch64-debian-10-container:
<<: *container_extra_job_definition
<<: *container_job_definition
variables:
NAME: debian-10-cross-aarch64
@ -257,7 +220,7 @@ mips64el-debian-10-container:
NAME: debian-10-cross-mips64el
mipsel-debian-10-container:
<<: *container_extra_job_definition
<<: *container_job_definition
variables:
NAME: debian-10-cross-mipsel
@ -267,7 +230,7 @@ ppc64le-debian-10-container:
NAME: debian-10-cross-ppc64le
s390x-debian-10-container:
<<: *container_default_job_definition
<<: *container_job_definition
variables:
NAME: debian-10-cross-s390x
@ -282,12 +245,12 @@ armv6l-debian-sid-container:
NAME: debian-sid-cross-armv6l
armv7-ldebian-sid-container:
<<: *container_default_job_definition
<<: *container_job_definition
variables:
NAME: debian-sid-cross-armv7l
i686-debian-sid-container:
<<: *container_extra_job_definition
<<: *container_job_definition
variables:
NAME: debian-sid-cross-i686
@ -302,7 +265,7 @@ mipsel-debian-sid-container:
NAME: debian-sid-cross-mipsel
ppc64le-debian-sid-container:
<<: *container_extra_job_definition
<<: *container_job_definition
variables:
NAME: debian-sid-cross-ppc64le
@ -312,12 +275,12 @@ s390x-debian-sid-container:
NAME: debian-sid-cross-s390x
mingw32-fedora-rawhide-container:
<<: *container_default_job_definition
<<: *container_job_definition
variables:
NAME: fedora-rawhide-cross-mingw32
mingw64-fedora-rawhide-container:
<<: *container_default_job_definition
<<: *container_job_definition
variables:
NAME: fedora-rawhide-cross-mingw64
@ -325,72 +288,72 @@ mingw64-fedora-rawhide-container:
# Native architecture build + test jobs
x64-debian-9:
<<: *native_build_extra_job_definition
<<: *native_build_job_definition
variables:
NAME: debian-9
x64-debian-10:
<<: *native_build_default_job_definition
<<: *native_build_job_definition
variables:
NAME: debian-10
x64-debian-sid:
<<: *native_build_extra_job_definition
<<: *native_build_job_definition
variables:
NAME: debian-sid
x64-centos-7:
<<: *native_build_default_job_definition
<<: *native_build_job_definition
variables:
NAME: centos-7
x64-centos-8:
<<: *native_build_extra_job_definition
<<: *native_build_job_definition
variables:
NAME: centos-8
x64-centos-stream:
<<: *native_build_extra_job_definition
<<: *native_build_job_definition
variables:
NAME: centos-stream
x64-fedora-31:
<<: *native_build_extra_job_definition
<<: *native_build_job_definition
variables:
NAME: fedora-31
x64-fedora-32:
<<: *native_build_default_job_definition
<<: *native_build_job_definition
variables:
NAME: fedora-32
x64-fedora-rawhide:
<<: *native_build_default_job_definition
<<: *native_build_job_definition
variables:
NAME: fedora-rawhide
x64-opensuse-151:
<<: *native_build_default_job_definition
<<: *native_build_job_definition
variables:
NAME: opensuse-151
x64-ubuntu-1804:
<<: *native_build_extra_job_definition
<<: *native_build_job_definition
variables:
NAME: ubuntu-1804
x64-ubuntu-2004:
<<: *native_build_default_job_definition
<<: *native_build_job_definition
variables:
NAME: ubuntu-2004
x64-freebsd-12-build:
<<: *cirrus_build_default_job_definition
<<: *cirrus_build_job_definition
variables:
NAME: freebsd-12
x64-macos-1015-build:
<<: *cirrus_build_default_job_definition
<<: *cirrus_build_job_definition
variables:
NAME: macos-1015
@ -398,67 +361,67 @@ x64-macos-1015-build:
# Cross compiled build jobs
armv6l-debian-9:
<<: *cross_build_extra_job_definition
<<: *cross_build_job_definition
variables:
NAME: debian-9
CROSS: armv6l
mips64el-debian-9:
<<: *cross_build_extra_job_definition
<<: *cross_build_job_definition
variables:
NAME: debian-9
CROSS: mips64el
mips-debian-9:
<<: *cross_build_extra_job_definition
<<: *cross_build_job_definition
variables:
NAME: debian-9
CROSS: mips
aarch64-debian-10:
<<: *cross_build_extra_job_definition
<<: *cross_build_job_definition
variables:
NAME: debian-10
CROSS: aarch64
mipsel-debian-10:
<<: *cross_build_extra_job_definition
<<: *cross_build_job_definition
variables:
NAME: debian-10
CROSS: mipsel
s390x-debian-10:
<<: *cross_build_default_job_definition
<<: *cross_build_job_definition
variables:
NAME: debian-10
CROSS: s390x
armv7l-debian-sid:
<<: *cross_build_default_job_definition
<<: *cross_build_job_definition
variables:
NAME: debian-sid
CROSS: armv7l
i686-debian-sid:
<<: *cross_build_extra_job_definition
<<: *cross_build_job_definition
variables:
NAME: debian-sid
CROSS: i686
ppc64le-debian-sid:
<<: *cross_build_extra_job_definition
<<: *cross_build_job_definition
variables:
NAME: debian-sid
CROSS: ppc64le
mingw32-fedora-rawhide:
<<: *cross_build_default_job_definition
<<: *cross_build_job_definition
variables:
NAME: fedora-rawhide
CROSS: mingw32
mingw64-fedora-rawhide:
<<: *cross_build_default_job_definition
<<: *cross_build_job_definition
variables:
NAME: fedora-rawhide
CROSS: mingw64