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@xxxxxxxxxx> --- .gitlab-ci.yml | 143 ++++++++++++++++++------------------------------- 1 file changed, 53 insertions(+), 90 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6cb910b0fa..e6eb2f9905 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -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 -- 2.25.4