Notable changes:
* 'lcitool manifest' now generates GitLab CI rules spread
across a bunch of files;
* container images are built less frequently for the main
repository.
Signed-off-by: Andrea Bolognani <abologna(a)redhat.com>
---
ci/gitlab.yml | 747 +-----------------------------
ci/gitlab/build-templates.yml | 45 ++
ci/gitlab/builds.yml | 392 ++++++++++++++++
ci/gitlab/container-templates.yml | 52 +++
ci/gitlab/containers.yml | 318 +++++++++++++
ci/gitlab/sanity-checks.yml | 18 +
6 files changed, 831 insertions(+), 741 deletions(-)
create mode 100644 ci/gitlab/build-templates.yml
create mode 100644 ci/gitlab/builds.yml
create mode 100644 ci/gitlab/container-templates.yml
create mode 100644 ci/gitlab/containers.yml
create mode 100644 ci/gitlab/sanity-checks.yml
diff --git a/ci/gitlab.yml b/ci/gitlab.yml
index f4e3f189c0..379a41111c 100644
--- a/ci/gitlab.yml
+++ b/ci/gitlab.yml
@@ -4,744 +4,9 @@
#
#
https://gitlab.com/libvirt/libvirt-ci
-
-.container_job:
- image: docker:stable
- stage: containers
- needs: []
- services:
- - docker:dind
- before_script:
- - export TAG="$CI_REGISTRY_IMAGE/ci-$NAME:latest"
- - export COMMON_TAG="$CI_REGISTRY/libvirt/libvirt/ci-$NAME:latest"
- - docker info
- - docker login
registry.gitlab.com -u "$CI_REGISTRY_USER" -p
"$CI_REGISTRY_PASSWORD"
- script:
- - docker pull "$TAG" || docker pull "$COMMON_TAG" || true
- - docker build --cache-from "$TAG" --cache-from "$COMMON_TAG"
--tag "$TAG" -f "ci/containers/$NAME.Dockerfile" ci/containers
- - docker push "$TAG"
- after_script:
- - docker logout
-
-
-.gitlab_native_build_job:
- image: $CI_REGISTRY_IMAGE/ci-$NAME:latest
- stage: builds
-
-
-.gitlab_cross_build_job:
- image: $CI_REGISTRY_IMAGE/ci-$NAME-cross-$CROSS:latest
- stage: builds
-
-
-.cirrus_build_job:
- stage: builds
- image:
registry.gitlab.com/libvirt/libvirt-ci/cirrus-run:master
- needs: []
- script:
- - source ci/cirrus/$NAME.vars
- - sed -e "s|[@]CI_REPOSITORY_URL@|$CI_REPOSITORY_URL|g"
- -e "s|[@]CI_COMMIT_REF_NAME@|$CI_COMMIT_REF_NAME|g"
- -e "s|[@]CI_COMMIT_SHA@|$CI_COMMIT_SHA|g"
- -e "s|[@]CIRRUS_VM_INSTANCE_TYPE@|$CIRRUS_VM_INSTANCE_TYPE|g"
- -e "s|[@]CIRRUS_VM_IMAGE_SELECTOR@|$CIRRUS_VM_IMAGE_SELECTOR|g"
- -e "s|[@]CIRRUS_VM_IMAGE_NAME@|$CIRRUS_VM_IMAGE_NAME|g"
- -e "s|[@]UPDATE_COMMAND@|$UPDATE_COMMAND|g"
- -e "s|[@]UPGRADE_COMMAND@|$UPGRADE_COMMAND|g"
- -e "s|[@]INSTALL_COMMAND@|$INSTALL_COMMAND|g"
- -e "s|[@]PATH@|$PATH_EXTRA${PATH_EXTRA:+:}\$PATH|g"
- -e "s|[@]PKG_CONFIG_PATH@|$PKG_CONFIG_PATH|g"
- -e "s|[@]PKGS@|$PKGS|g"
- -e "s|[@]MAKE@|$MAKE|g"
- -e "s|[@]PYTHON@|$PYTHON|g"
- -e "s|[@]PIP3@|$PIP3|g"
- -e "s|[@]PYPI_PKGS@|$PYPI_PKGS|g"
- -e "s|[@]XML_CATALOG_FILES@|$XML_CATALOG_FILES|g"
- <ci/cirrus/build.yml >ci/cirrus/$NAME.yml
- - cat ci/cirrus/$NAME.yml
- - cirrus-run -v --show-build-log always ci/cirrus/$NAME.yml
- rules:
- - if: "$CIRRUS_GITHUB_REPO && $CIRRUS_API_TOKEN"
-
-
-check-dco:
- stage: sanity_checks
- needs: []
- image:
registry.gitlab.com/libvirt/libvirt-ci/check-dco:master
- script:
- - /check-dco libvirt
- except:
- variables:
- - $CI_PROJECT_NAMESPACE == 'libvirt'
- variables:
- GIT_DEPTH: 1000
-
-
-# Native container jobs
-
-x86_64-almalinux-8-container:
- extends: .container_job
- allow_failure: false
- variables:
- NAME: almalinux-8
-
-
-x86_64-alpine-314-container:
- extends: .container_job
- allow_failure: false
- variables:
- NAME: alpine-314
-
-
-x86_64-alpine-315-container:
- extends: .container_job
- allow_failure: false
- variables:
- NAME: alpine-315
-
-
-x86_64-alpine-edge-container:
- extends: .container_job
- allow_failure: true
- variables:
- NAME: alpine-edge
-
-
-x86_64-centos-stream-8-container:
- extends: .container_job
- allow_failure: false
- variables:
- NAME: centos-stream-8
-
-
-x86_64-centos-stream-9-container:
- extends: .container_job
- allow_failure: false
- variables:
- NAME: centos-stream-9
-
-
-x86_64-debian-10-container:
- extends: .container_job
- allow_failure: false
- variables:
- NAME: debian-10
-
-
-x86_64-debian-11-container:
- extends: .container_job
- allow_failure: false
- variables:
- NAME: debian-11
-
-
-x86_64-debian-sid-container:
- extends: .container_job
- allow_failure: true
- variables:
- NAME: debian-sid
-
-
-x86_64-fedora-35-container:
- extends: .container_job
- allow_failure: false
- variables:
- NAME: fedora-35
-
-
-x86_64-fedora-rawhide-container:
- extends: .container_job
- allow_failure: true
- variables:
- NAME: fedora-rawhide
-
-
-x86_64-opensuse-leap-153-container:
- extends: .container_job
- allow_failure: false
- variables:
- NAME: opensuse-leap-153
-
-
-x86_64-opensuse-tumbleweed-container:
- extends: .container_job
- allow_failure: true
- variables:
- NAME: opensuse-tumbleweed
-
-
-x86_64-ubuntu-2004-container:
- extends: .container_job
- allow_failure: false
- variables:
- NAME: ubuntu-2004
-
-
-x86_64-ubuntu-2204-container:
- extends: .container_job
- allow_failure: false
- variables:
- NAME: ubuntu-2204
-
-
-
-# Cross container jobs
-
-aarch64-debian-10-container:
- extends: .container_job
- allow_failure: true
- variables:
- NAME: debian-10-cross-aarch64
-
-
-armv6l-debian-10-container:
- extends: .container_job
- allow_failure: false
- variables:
- NAME: debian-10-cross-armv6l
-
-
-armv7l-debian-10-container:
- extends: .container_job
- allow_failure: true
- variables:
- NAME: debian-10-cross-armv7l
-
-
-i686-debian-10-container:
- extends: .container_job
- allow_failure: true
- variables:
- NAME: debian-10-cross-i686
-
-
-mips-debian-10-container:
- extends: .container_job
- allow_failure: false
- variables:
- NAME: debian-10-cross-mips
-
-
-mips64el-debian-10-container:
- extends: .container_job
- allow_failure: true
- variables:
- NAME: debian-10-cross-mips64el
-
-
-mipsel-debian-10-container:
- extends: .container_job
- allow_failure: false
- variables:
- NAME: debian-10-cross-mipsel
-
-
-ppc64le-debian-10-container:
- extends: .container_job
- allow_failure: true
- variables:
- NAME: debian-10-cross-ppc64le
-
-
-s390x-debian-10-container:
- extends: .container_job
- allow_failure: true
- variables:
- NAME: debian-10-cross-s390x
-
-
-aarch64-debian-11-container:
- extends: .container_job
- allow_failure: true
- variables:
- NAME: debian-11-cross-aarch64
-
-
-armv6l-debian-11-container:
- extends: .container_job
- allow_failure: true
- variables:
- NAME: debian-11-cross-armv6l
-
-
-armv7l-debian-11-container:
- extends: .container_job
- allow_failure: false
- variables:
- NAME: debian-11-cross-armv7l
-
-
-i686-debian-11-container:
- extends: .container_job
- allow_failure: true
- variables:
- NAME: debian-11-cross-i686
-
-
-mips64el-debian-11-container:
- extends: .container_job
- allow_failure: false
- variables:
- NAME: debian-11-cross-mips64el
-
-
-mipsel-debian-11-container:
- extends: .container_job
- allow_failure: true
- variables:
- NAME: debian-11-cross-mipsel
-
-
-ppc64le-debian-11-container:
- extends: .container_job
- allow_failure: false
- variables:
- NAME: debian-11-cross-ppc64le
-
-
-s390x-debian-11-container:
- extends: .container_job
- allow_failure: true
- variables:
- NAME: debian-11-cross-s390x
-
-
-aarch64-debian-sid-container:
- extends: .container_job
- allow_failure: true
- variables:
- NAME: debian-sid-cross-aarch64
-
-
-armv6l-debian-sid-container:
- extends: .container_job
- allow_failure: true
- variables:
- NAME: debian-sid-cross-armv6l
-
-
-armv7l-debian-sid-container:
- extends: .container_job
- allow_failure: true
- variables:
- NAME: debian-sid-cross-armv7l
-
-
-i686-debian-sid-container:
- extends: .container_job
- allow_failure: true
- variables:
- NAME: debian-sid-cross-i686
-
-
-mips64el-debian-sid-container:
- extends: .container_job
- allow_failure: true
- variables:
- NAME: debian-sid-cross-mips64el
-
-
-mipsel-debian-sid-container:
- extends: .container_job
- allow_failure: true
- variables:
- NAME: debian-sid-cross-mipsel
-
-
-ppc64le-debian-sid-container:
- extends: .container_job
- allow_failure: true
- variables:
- NAME: debian-sid-cross-ppc64le
-
-
-s390x-debian-sid-container:
- extends: .container_job
- allow_failure: true
- variables:
- NAME: debian-sid-cross-s390x
-
-
-mingw32-fedora-35-container:
- extends: .container_job
- allow_failure: true
- variables:
- NAME: fedora-35-cross-mingw32
-
-
-mingw64-fedora-35-container:
- extends: .container_job
- allow_failure: false
- variables:
- NAME: fedora-35-cross-mingw64
-
-
-mingw32-fedora-rawhide-container:
- extends: .container_job
- allow_failure: true
- variables:
- NAME: fedora-rawhide-cross-mingw32
-
-
-mingw64-fedora-rawhide-container:
- extends: .container_job
- allow_failure: true
- variables:
- NAME: fedora-rawhide-cross-mingw64
-
-
-# Native build jobs
-
-x86_64-almalinux-8:
- extends: .native_build_job
- needs:
- - x86_64-almalinux-8-container
- allow_failure: false
- variables:
- NAME: almalinux-8
- RPM: skip
-
-
-x86_64-almalinux-8-clang:
- extends: .native_build_job
- needs:
- - x86_64-almalinux-8-container
- allow_failure: false
- variables:
- CC: clang
- NAME: almalinux-8
- RPM: skip
-
-
-x86_64-alpine-314:
- extends: .native_build_job
- needs:
- - x86_64-alpine-314-container
- allow_failure: false
- variables:
- NAME: alpine-314
-
-
-x86_64-alpine-315:
- extends: .native_build_job
- needs:
- - x86_64-alpine-315-container
- allow_failure: false
- variables:
- NAME: alpine-315
-
-
-x86_64-alpine-edge:
- extends: .native_build_job
- needs:
- - x86_64-alpine-edge-container
- allow_failure: true
- variables:
- NAME: alpine-edge
-
-
-x86_64-centos-stream-8:
- extends: .native_build_job
- needs:
- - x86_64-centos-stream-8-container
- allow_failure: false
- variables:
- NAME: centos-stream-8
- artifacts:
- expire_in: 1 day
- paths:
- - libvirt-rpms
-
-
-x86_64-centos-stream-9:
- extends: .native_build_job
- needs:
- - x86_64-centos-stream-9-container
- allow_failure: false
- variables:
- NAME: centos-stream-9
- artifacts:
- expire_in: 1 day
- paths:
- - libvirt-rpms
-
-
-x86_64-debian-10:
- extends: .native_build_job
- needs:
- - x86_64-debian-10-container
- allow_failure: false
- variables:
- NAME: debian-10
-
-
-x86_64-debian-11:
- extends: .native_build_job
- needs:
- - x86_64-debian-11-container
- allow_failure: false
- variables:
- NAME: debian-11
-
-
-x86_64-debian-11-clang:
- extends: .native_build_job
- needs:
- - x86_64-debian-11-container
- allow_failure: false
- variables:
- NAME: debian-11
-
-
-x86_64-debian-sid:
- extends: .native_build_job
- needs:
- - x86_64-debian-sid-container
- allow_failure: true
- variables:
- NAME: debian-sid
-
-
-x86_64-fedora-35:
- extends: .native_build_job
- needs:
- - x86_64-fedora-35-container
- allow_failure: false
- variables:
- NAME: fedora-35
- artifacts:
- expire_in: 1 day
- paths:
- - libvirt-rpms
-
-
-x86_64-fedora-rawhide:
- extends: .native_build_job
- needs:
- - x86_64-fedora-rawhide-container
- allow_failure: true
- variables:
- NAME: fedora-rawhide
-
-
-x86_64-fedora-rawhide-clang:
- extends: .native_build_job
- needs:
- - x86_64-fedora-rawhide-container
- allow_failure: true
- variables:
- CC: clang
- NAME: fedora-rawhide
- RPM: skip
-
-
-x86_64-opensuse-leap-153:
- extends: .native_build_job
- needs:
- - x86_64-opensuse-leap-153-container
- allow_failure: false
- variables:
- NAME: opensuse-leap-153
- RPM: skip
-
-
-x86_64-opensuse-tumbleweed:
- extends: .native_build_job
- needs:
- - x86_64-opensuse-tumbleweed-container
- allow_failure: true
- variables:
- NAME: opensuse-tumbleweed
- RPM: skip
-
-
-x86_64-ubuntu-2004:
- extends: .native_build_job
- needs:
- - x86_64-ubuntu-2004-container
- allow_failure: false
- variables:
- NAME: ubuntu-2004
-
-
-x86_64-ubuntu-2204:
- extends: .native_build_job
- needs:
- - x86_64-ubuntu-2204-container
- allow_failure: false
- variables:
- ASAN_OPTIONS: verify_asan_link_order=0
- MESON_ARGS: -Db_lundef=false -Db_sanitize=address,undefined
- NAME: ubuntu-2204
- UBSAN_OPTIONS: print_stacktrace=1:halt_on_error=1
-
-
-x86_64-ubuntu-2204-clang:
- extends: .native_build_job
- needs:
- - x86_64-ubuntu-2204-container
- allow_failure: false
- variables:
- CC: clang
- MESON_ARGS: -Db_lundef=false -Db_sanitize=address,undefined
- NAME: ubuntu-2204
- UBSAN_OPTIONS: print_stacktrace=1:halt_on_error=1
-
-
-
-# Cross build jobs
-
-armv6l-debian-10:
- extends: .cross_build_job
- needs:
- - armv6l-debian-10-container
- allow_failure: false
- variables:
- CROSS: armv6l
- NAME: debian-10
-
-
-mips-debian-10:
- extends: .cross_build_job
- needs:
- - mips-debian-10-container
- allow_failure: false
- variables:
- CROSS: mips
- NAME: debian-10
-
-
-mipsel-debian-10:
- extends: .cross_build_job
- needs:
- - mipsel-debian-10-container
- allow_failure: false
- variables:
- CROSS: mipsel
- NAME: debian-10
-
-
-armv7l-debian-11:
- extends: .cross_build_job
- needs:
- - armv7l-debian-11-container
- allow_failure: false
- variables:
- CROSS: armv7l
- NAME: debian-11
-
-
-mips64el-debian-11:
- extends: .cross_build_job
- needs:
- - mips64el-debian-11-container
- allow_failure: false
- variables:
- CROSS: mips64el
- NAME: debian-11
-
-
-ppc64le-debian-11:
- extends: .cross_build_job
- needs:
- - ppc64le-debian-11-container
- allow_failure: false
- variables:
- CROSS: ppc64le
- NAME: debian-11
-
-
-aarch64-debian-sid:
- extends: .cross_build_job
- needs:
- - aarch64-debian-sid-container
- allow_failure: true
- variables:
- CROSS: aarch64
- NAME: debian-sid
-
-
-i686-debian-sid:
- extends: .cross_build_job
- needs:
- - i686-debian-sid-container
- allow_failure: true
- variables:
- CROSS: i686
- NAME: debian-sid
-
-
-s390x-debian-sid:
- extends: .cross_build_job
- needs:
- - s390x-debian-sid-container
- allow_failure: true
- variables:
- CROSS: s390x
- NAME: debian-sid
-
-
-mingw64-fedora-35:
- extends: .cross_build_job
- needs:
- - mingw64-fedora-35-container
- allow_failure: false
- variables:
- CROSS: mingw64
- NAME: fedora-35
-
-
-mingw32-fedora-rawhide:
- extends: .cross_build_job
- needs:
- - mingw32-fedora-rawhide-container
- allow_failure: true
- variables:
- CROSS: mingw32
- NAME: fedora-rawhide
-
-
-# Native cirrus build jobs
-
-x86_64-freebsd-12:
- extends: .cirrus_build_job
- needs: []
- allow_failure: false
- variables:
- CIRRUS_VM_IMAGE_NAME: freebsd-12-3
- CIRRUS_VM_IMAGE_SELECTOR: image_family
- CIRRUS_VM_INSTANCE_TYPE: freebsd_instance
- INSTALL_COMMAND: pkg install -y
- NAME: freebsd-12
- UPDATE_COMMAND: pkg update
- UPGRADE_COMMAND: pkg upgrade -y
-
-
-x86_64-freebsd-13:
- extends: .cirrus_build_job
- needs: []
- allow_failure: false
- variables:
- CIRRUS_VM_IMAGE_NAME: freebsd-13-0
- CIRRUS_VM_IMAGE_SELECTOR: image_family
- CIRRUS_VM_INSTANCE_TYPE: freebsd_instance
- INSTALL_COMMAND: pkg install -y
- NAME: freebsd-13
- UPDATE_COMMAND: pkg update
- UPGRADE_COMMAND: pkg upgrade -y
-
-
-x86_64-macos-11:
- extends: .cirrus_build_job
- needs: []
- allow_failure: false
- variables:
- CIRRUS_VM_IMAGE_NAME: big-sur-base
- CIRRUS_VM_IMAGE_SELECTOR: image
- CIRRUS_VM_INSTANCE_TYPE: osx_instance
- INSTALL_COMMAND: brew install
- NAME: macos-11
- PATH_EXTRA:
/usr/local/opt/ccache/libexec:/usr/local/opt/gettext/bin:/usr/local/opt/libpcap/bin:/usr/local/opt/libxslt/bin:/usr/local/opt/rpcgen/bin
- PKG_CONFIG_PATH:
/usr/local/opt/curl/lib/pkgconfig:/usr/local/opt/libpcap/lib/pkgconfig:/usr/local/opt/libxml2/lib/pkgconfig:/usr/local/opt/ncurses/lib/pkgconfig:/usr/local/opt/readline/lib/pkgconfig
- UPDATE_COMMAND: brew update
- UPGRADE_COMMAND: brew upgrade
+include:
+ - local: 'ci/gitlab/container-templates.yml'
+ - local: 'ci/gitlab/build-templates.yml'
+ - local: 'ci/gitlab/sanity-checks.yml'
+ - local: 'ci/gitlab/containers.yml'
+ - local: 'ci/gitlab/builds.yml'
diff --git a/ci/gitlab/build-templates.yml b/ci/gitlab/build-templates.yml
new file mode 100644
index 0000000000..446822d5d1
--- /dev/null
+++ b/ci/gitlab/build-templates.yml
@@ -0,0 +1,45 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool manifest ci/manifest.yml
+#
+#
https://gitlab.com/libvirt/libvirt-ci
+
+
+.gitlab_native_build_job:
+ image: $CI_REGISTRY_IMAGE/ci-$NAME:latest
+ stage: builds
+
+
+.gitlab_cross_build_job:
+ image: $CI_REGISTRY_IMAGE/ci-$NAME-cross-$CROSS:latest
+ stage: builds
+
+
+.cirrus_build_job:
+ stage: builds
+ image:
registry.gitlab.com/libvirt/libvirt-ci/cirrus-run:master
+ needs: []
+ script:
+ - source ci/cirrus/$NAME.vars
+ - sed -e "s|[@]CI_REPOSITORY_URL@|$CI_REPOSITORY_URL|g"
+ -e "s|[@]CI_COMMIT_REF_NAME@|$CI_COMMIT_REF_NAME|g"
+ -e "s|[@]CI_COMMIT_SHA@|$CI_COMMIT_SHA|g"
+ -e "s|[@]CIRRUS_VM_INSTANCE_TYPE@|$CIRRUS_VM_INSTANCE_TYPE|g"
+ -e "s|[@]CIRRUS_VM_IMAGE_SELECTOR@|$CIRRUS_VM_IMAGE_SELECTOR|g"
+ -e "s|[@]CIRRUS_VM_IMAGE_NAME@|$CIRRUS_VM_IMAGE_NAME|g"
+ -e "s|[@]UPDATE_COMMAND@|$UPDATE_COMMAND|g"
+ -e "s|[@]UPGRADE_COMMAND@|$UPGRADE_COMMAND|g"
+ -e "s|[@]INSTALL_COMMAND@|$INSTALL_COMMAND|g"
+ -e "s|[@]PATH@|$PATH_EXTRA${PATH_EXTRA:+:}\$PATH|g"
+ -e "s|[@]PKG_CONFIG_PATH@|$PKG_CONFIG_PATH|g"
+ -e "s|[@]PKGS@|$PKGS|g"
+ -e "s|[@]MAKE@|$MAKE|g"
+ -e "s|[@]PYTHON@|$PYTHON|g"
+ -e "s|[@]PIP3@|$PIP3|g"
+ -e "s|[@]PYPI_PKGS@|$PYPI_PKGS|g"
+ -e "s|[@]XML_CATALOG_FILES@|$XML_CATALOG_FILES|g"
+ <ci/cirrus/build.yml >ci/cirrus/$NAME.yml
+ - cat ci/cirrus/$NAME.yml
+ - cirrus-run -v --show-build-log always ci/cirrus/$NAME.yml
+ rules:
+ - if: "$CIRRUS_GITHUB_REPO && $CIRRUS_API_TOKEN"
diff --git a/ci/gitlab/builds.yml b/ci/gitlab/builds.yml
new file mode 100644
index 0000000000..8d8ac7bc8a
--- /dev/null
+++ b/ci/gitlab/builds.yml
@@ -0,0 +1,392 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool manifest ci/manifest.yml
+#
+#
https://gitlab.com/libvirt/libvirt-ci
+
+
+# Native build jobs
+
+x86_64-almalinux-8:
+ extends: .native_build_job
+ needs:
+ - job: x86_64-almalinux-8-container
+ optional: true
+ allow_failure: false
+ variables:
+ NAME: almalinux-8
+ RPM: skip
+
+
+x86_64-almalinux-8-clang:
+ extends: .native_build_job
+ needs:
+ - job: x86_64-almalinux-8-container
+ optional: true
+ allow_failure: false
+ variables:
+ CC: clang
+ NAME: almalinux-8
+ RPM: skip
+
+
+x86_64-alpine-314:
+ extends: .native_build_job
+ needs:
+ - job: x86_64-alpine-314-container
+ optional: true
+ allow_failure: false
+ variables:
+ NAME: alpine-314
+
+
+x86_64-alpine-315:
+ extends: .native_build_job
+ needs:
+ - job: x86_64-alpine-315-container
+ optional: true
+ allow_failure: false
+ variables:
+ NAME: alpine-315
+
+
+x86_64-alpine-edge:
+ extends: .native_build_job
+ needs:
+ - job: x86_64-alpine-edge-container
+ optional: true
+ allow_failure: true
+ variables:
+ NAME: alpine-edge
+
+
+x86_64-centos-stream-8:
+ extends: .native_build_job
+ needs:
+ - job: x86_64-centos-stream-8-container
+ optional: true
+ allow_failure: false
+ variables:
+ NAME: centos-stream-8
+ artifacts:
+ expire_in: 1 day
+ paths:
+ - libvirt-rpms
+
+
+x86_64-centos-stream-9:
+ extends: .native_build_job
+ needs:
+ - job: x86_64-centos-stream-9-container
+ optional: true
+ allow_failure: false
+ variables:
+ NAME: centos-stream-9
+ artifacts:
+ expire_in: 1 day
+ paths:
+ - libvirt-rpms
+
+
+x86_64-debian-10:
+ extends: .native_build_job
+ needs:
+ - job: x86_64-debian-10-container
+ optional: true
+ allow_failure: false
+ variables:
+ NAME: debian-10
+
+
+x86_64-debian-11:
+ extends: .native_build_job
+ needs:
+ - job: x86_64-debian-11-container
+ optional: true
+ allow_failure: false
+ variables:
+ NAME: debian-11
+
+
+x86_64-debian-11-clang:
+ extends: .native_build_job
+ needs:
+ - job: x86_64-debian-11-container
+ optional: true
+ allow_failure: false
+ variables:
+ NAME: debian-11
+
+
+x86_64-debian-sid:
+ extends: .native_build_job
+ needs:
+ - job: x86_64-debian-sid-container
+ optional: true
+ allow_failure: true
+ variables:
+ NAME: debian-sid
+
+
+x86_64-fedora-35:
+ extends: .native_build_job
+ needs:
+ - job: x86_64-fedora-35-container
+ optional: true
+ allow_failure: false
+ variables:
+ NAME: fedora-35
+ artifacts:
+ expire_in: 1 day
+ paths:
+ - libvirt-rpms
+
+
+x86_64-fedora-rawhide:
+ extends: .native_build_job
+ needs:
+ - job: x86_64-fedora-rawhide-container
+ optional: true
+ allow_failure: true
+ variables:
+ NAME: fedora-rawhide
+
+
+x86_64-fedora-rawhide-clang:
+ extends: .native_build_job
+ needs:
+ - job: x86_64-fedora-rawhide-container
+ optional: true
+ allow_failure: true
+ variables:
+ CC: clang
+ NAME: fedora-rawhide
+ RPM: skip
+
+
+x86_64-opensuse-leap-153:
+ extends: .native_build_job
+ needs:
+ - job: x86_64-opensuse-leap-153-container
+ optional: true
+ allow_failure: false
+ variables:
+ NAME: opensuse-leap-153
+ RPM: skip
+
+
+x86_64-opensuse-tumbleweed:
+ extends: .native_build_job
+ needs:
+ - job: x86_64-opensuse-tumbleweed-container
+ optional: true
+ allow_failure: true
+ variables:
+ NAME: opensuse-tumbleweed
+ RPM: skip
+
+
+x86_64-ubuntu-2004:
+ extends: .native_build_job
+ needs:
+ - job: x86_64-ubuntu-2004-container
+ optional: true
+ allow_failure: false
+ variables:
+ NAME: ubuntu-2004
+
+
+x86_64-ubuntu-2204:
+ extends: .native_build_job
+ needs:
+ - job: x86_64-ubuntu-2204-container
+ optional: true
+ allow_failure: false
+ variables:
+ ASAN_OPTIONS: verify_asan_link_order=0
+ MESON_ARGS: -Db_lundef=false -Db_sanitize=address,undefined
+ NAME: ubuntu-2204
+ UBSAN_OPTIONS: print_stacktrace=1:halt_on_error=1
+
+
+x86_64-ubuntu-2204-clang:
+ extends: .native_build_job
+ needs:
+ - job: x86_64-ubuntu-2204-container
+ optional: true
+ allow_failure: false
+ variables:
+ CC: clang
+ MESON_ARGS: -Db_lundef=false -Db_sanitize=address,undefined
+ NAME: ubuntu-2204
+ UBSAN_OPTIONS: print_stacktrace=1:halt_on_error=1
+
+
+
+# Cross build jobs
+
+armv6l-debian-10:
+ extends: .cross_build_job
+ needs:
+ - job: armv6l-debian-10-container
+ optional: true
+ allow_failure: false
+ variables:
+ CROSS: armv6l
+ NAME: debian-10
+
+
+mips-debian-10:
+ extends: .cross_build_job
+ needs:
+ - job: mips-debian-10-container
+ optional: true
+ allow_failure: false
+ variables:
+ CROSS: mips
+ NAME: debian-10
+
+
+mipsel-debian-10:
+ extends: .cross_build_job
+ needs:
+ - job: mipsel-debian-10-container
+ optional: true
+ allow_failure: false
+ variables:
+ CROSS: mipsel
+ NAME: debian-10
+
+
+armv7l-debian-11:
+ extends: .cross_build_job
+ needs:
+ - job: armv7l-debian-11-container
+ optional: true
+ allow_failure: false
+ variables:
+ CROSS: armv7l
+ NAME: debian-11
+
+
+mips64el-debian-11:
+ extends: .cross_build_job
+ needs:
+ - job: mips64el-debian-11-container
+ optional: true
+ allow_failure: false
+ variables:
+ CROSS: mips64el
+ NAME: debian-11
+
+
+ppc64le-debian-11:
+ extends: .cross_build_job
+ needs:
+ - job: ppc64le-debian-11-container
+ optional: true
+ allow_failure: false
+ variables:
+ CROSS: ppc64le
+ NAME: debian-11
+
+
+aarch64-debian-sid:
+ extends: .cross_build_job
+ needs:
+ - job: aarch64-debian-sid-container
+ optional: true
+ allow_failure: true
+ variables:
+ CROSS: aarch64
+ NAME: debian-sid
+
+
+i686-debian-sid:
+ extends: .cross_build_job
+ needs:
+ - job: i686-debian-sid-container
+ optional: true
+ allow_failure: true
+ variables:
+ CROSS: i686
+ NAME: debian-sid
+
+
+s390x-debian-sid:
+ extends: .cross_build_job
+ needs:
+ - job: s390x-debian-sid-container
+ optional: true
+ allow_failure: true
+ variables:
+ CROSS: s390x
+ NAME: debian-sid
+
+
+mingw64-fedora-35:
+ extends: .cross_build_job
+ needs:
+ - job: mingw64-fedora-35-container
+ optional: true
+ allow_failure: false
+ variables:
+ CROSS: mingw64
+ NAME: fedora-35
+
+
+mingw32-fedora-rawhide:
+ extends: .cross_build_job
+ needs:
+ - job: mingw32-fedora-rawhide-container
+ optional: true
+ allow_failure: true
+ variables:
+ CROSS: mingw32
+ NAME: fedora-rawhide
+
+
+# Native cirrus build jobs
+
+x86_64-freebsd-12:
+ extends: .cirrus_build_job
+ needs: []
+ allow_failure: false
+ variables:
+ CIRRUS_VM_IMAGE_NAME: freebsd-12-3
+ CIRRUS_VM_IMAGE_SELECTOR: image_family
+ CIRRUS_VM_INSTANCE_TYPE: freebsd_instance
+ INSTALL_COMMAND: pkg install -y
+ NAME: freebsd-12
+ UPDATE_COMMAND: pkg update
+ UPGRADE_COMMAND: pkg upgrade -y
+
+
+x86_64-freebsd-13:
+ extends: .cirrus_build_job
+ needs: []
+ allow_failure: false
+ variables:
+ CIRRUS_VM_IMAGE_NAME: freebsd-13-0
+ CIRRUS_VM_IMAGE_SELECTOR: image_family
+ CIRRUS_VM_INSTANCE_TYPE: freebsd_instance
+ INSTALL_COMMAND: pkg install -y
+ NAME: freebsd-13
+ UPDATE_COMMAND: pkg update
+ UPGRADE_COMMAND: pkg upgrade -y
+
+
+x86_64-macos-11:
+ extends: .cirrus_build_job
+ needs: []
+ allow_failure: false
+ variables:
+ CIRRUS_VM_IMAGE_NAME: big-sur-base
+ CIRRUS_VM_IMAGE_SELECTOR: image
+ CIRRUS_VM_INSTANCE_TYPE: osx_instance
+ INSTALL_COMMAND: brew install
+ NAME: macos-11
+ PATH_EXTRA:
/usr/local/opt/ccache/libexec:/usr/local/opt/gettext/bin:/usr/local/opt/libpcap/bin:/usr/local/opt/libxslt/bin:/usr/local/opt/rpcgen/bin
+ PKG_CONFIG_PATH:
/usr/local/opt/curl/lib/pkgconfig:/usr/local/opt/libpcap/lib/pkgconfig:/usr/local/opt/libxml2/lib/pkgconfig:/usr/local/opt/ncurses/lib/pkgconfig:/usr/local/opt/readline/lib/pkgconfig
+ UPDATE_COMMAND: brew update
+ UPGRADE_COMMAND: brew upgrade
diff --git a/ci/gitlab/container-templates.yml b/ci/gitlab/container-templates.yml
new file mode 100644
index 0000000000..4cd28af8a9
--- /dev/null
+++ b/ci/gitlab/container-templates.yml
@@ -0,0 +1,52 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool manifest ci/manifest.yml
+#
+#
https://gitlab.com/libvirt/libvirt-ci
+
+
+# For upstream
+#
+# - Push to default branch:
+# -> rebuild if dockerfile changed, no cache
+# - Otherwise
+# -> rebuild if LIBVIRT_CI_CONTAINERS=1, no cache,
+# to pick up new published distro packages or
+# recover from deleted tag
+#
+# For forks
+# - Always rebuild, with cache
+#
+.container_job:
+ image: docker:stable
+ stage: containers
+ needs: []
+ services:
+ - docker:dind
+ before_script:
+ - export TAG="$CI_REGISTRY_IMAGE/ci-$NAME:latest"
+ - export COMMON_TAG="$CI_REGISTRY/libvirt/libvirt/ci-$NAME:latest"
+ - docker info
+ - docker login "$CI_REGISTRY" -u "$CI_REGISTRY_USER" -p
"$CI_REGISTRY_PASSWORD"
+ script:
+ - if test $CI_PROJECT_NAMESPACE = "libvirt";
+ then
+ docker build --tag "$TAG" -f "ci/containers/$NAME.Dockerfile"
ci/containers ;
+ else
+ docker pull "$TAG" || docker pull "$COMMON_TAG" || true ;
+ docker build --cache-from "$TAG" --cache-from "$COMMON_TAG"
--tag "$TAG" -f "ci/containers/$NAME.Dockerfile" ci/containers ;
+ fi
+ - docker push "$TAG"
+ after_script:
+ - docker logout
+ rules:
+ - if: '$CI_PROJECT_NAMESPACE == "libvirt" &&
$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH ==
$CI_DEFAULT_BRANCH'
+ when: on_success
+ changes:
+ - ci/gitlab/container-templates.yml
+ - ci/containers/$NAME.Dockerfile
+ - if: '$CI_PROJECT_NAMESPACE == "libvirt" &&
$LIBVIRT_CI_CONTAINERS == "1"'
+ when: on_success
+ - if: '$CI_PROJECT_NAMESPACE == "libvirt"'
+ when: never
+ - when: on_success
diff --git a/ci/gitlab/containers.yml b/ci/gitlab/containers.yml
new file mode 100644
index 0000000000..12ab6e4808
--- /dev/null
+++ b/ci/gitlab/containers.yml
@@ -0,0 +1,318 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool manifest ci/manifest.yml
+#
+#
https://gitlab.com/libvirt/libvirt-ci
+
+
+# Native container jobs
+
+x86_64-almalinux-8-container:
+ extends: .container_job
+ allow_failure: false
+ variables:
+ NAME: almalinux-8
+
+
+x86_64-alpine-314-container:
+ extends: .container_job
+ allow_failure: false
+ variables:
+ NAME: alpine-314
+
+
+x86_64-alpine-315-container:
+ extends: .container_job
+ allow_failure: false
+ variables:
+ NAME: alpine-315
+
+
+x86_64-alpine-edge-container:
+ extends: .container_job
+ allow_failure: true
+ variables:
+ NAME: alpine-edge
+
+
+x86_64-centos-stream-8-container:
+ extends: .container_job
+ allow_failure: false
+ variables:
+ NAME: centos-stream-8
+
+
+x86_64-centos-stream-9-container:
+ extends: .container_job
+ allow_failure: false
+ variables:
+ NAME: centos-stream-9
+
+
+x86_64-debian-10-container:
+ extends: .container_job
+ allow_failure: false
+ variables:
+ NAME: debian-10
+
+
+x86_64-debian-11-container:
+ extends: .container_job
+ allow_failure: false
+ variables:
+ NAME: debian-11
+
+
+x86_64-debian-sid-container:
+ extends: .container_job
+ allow_failure: true
+ variables:
+ NAME: debian-sid
+
+
+x86_64-fedora-35-container:
+ extends: .container_job
+ allow_failure: false
+ variables:
+ NAME: fedora-35
+
+
+x86_64-fedora-rawhide-container:
+ extends: .container_job
+ allow_failure: true
+ variables:
+ NAME: fedora-rawhide
+
+
+x86_64-opensuse-leap-153-container:
+ extends: .container_job
+ allow_failure: false
+ variables:
+ NAME: opensuse-leap-153
+
+
+x86_64-opensuse-tumbleweed-container:
+ extends: .container_job
+ allow_failure: true
+ variables:
+ NAME: opensuse-tumbleweed
+
+
+x86_64-ubuntu-2004-container:
+ extends: .container_job
+ allow_failure: false
+ variables:
+ NAME: ubuntu-2004
+
+
+x86_64-ubuntu-2204-container:
+ extends: .container_job
+ allow_failure: false
+ variables:
+ NAME: ubuntu-2204
+
+
+
+# Cross container jobs
+
+aarch64-debian-10-container:
+ extends: .container_job
+ allow_failure: true
+ variables:
+ NAME: debian-10-cross-aarch64
+
+
+armv6l-debian-10-container:
+ extends: .container_job
+ allow_failure: false
+ variables:
+ NAME: debian-10-cross-armv6l
+
+
+armv7l-debian-10-container:
+ extends: .container_job
+ allow_failure: true
+ variables:
+ NAME: debian-10-cross-armv7l
+
+
+i686-debian-10-container:
+ extends: .container_job
+ allow_failure: true
+ variables:
+ NAME: debian-10-cross-i686
+
+
+mips-debian-10-container:
+ extends: .container_job
+ allow_failure: false
+ variables:
+ NAME: debian-10-cross-mips
+
+
+mips64el-debian-10-container:
+ extends: .container_job
+ allow_failure: true
+ variables:
+ NAME: debian-10-cross-mips64el
+
+
+mipsel-debian-10-container:
+ extends: .container_job
+ allow_failure: false
+ variables:
+ NAME: debian-10-cross-mipsel
+
+
+ppc64le-debian-10-container:
+ extends: .container_job
+ allow_failure: true
+ variables:
+ NAME: debian-10-cross-ppc64le
+
+
+s390x-debian-10-container:
+ extends: .container_job
+ allow_failure: true
+ variables:
+ NAME: debian-10-cross-s390x
+
+
+aarch64-debian-11-container:
+ extends: .container_job
+ allow_failure: true
+ variables:
+ NAME: debian-11-cross-aarch64
+
+
+armv6l-debian-11-container:
+ extends: .container_job
+ allow_failure: true
+ variables:
+ NAME: debian-11-cross-armv6l
+
+
+armv7l-debian-11-container:
+ extends: .container_job
+ allow_failure: false
+ variables:
+ NAME: debian-11-cross-armv7l
+
+
+i686-debian-11-container:
+ extends: .container_job
+ allow_failure: true
+ variables:
+ NAME: debian-11-cross-i686
+
+
+mips64el-debian-11-container:
+ extends: .container_job
+ allow_failure: false
+ variables:
+ NAME: debian-11-cross-mips64el
+
+
+mipsel-debian-11-container:
+ extends: .container_job
+ allow_failure: true
+ variables:
+ NAME: debian-11-cross-mipsel
+
+
+ppc64le-debian-11-container:
+ extends: .container_job
+ allow_failure: false
+ variables:
+ NAME: debian-11-cross-ppc64le
+
+
+s390x-debian-11-container:
+ extends: .container_job
+ allow_failure: true
+ variables:
+ NAME: debian-11-cross-s390x
+
+
+aarch64-debian-sid-container:
+ extends: .container_job
+ allow_failure: true
+ variables:
+ NAME: debian-sid-cross-aarch64
+
+
+armv6l-debian-sid-container:
+ extends: .container_job
+ allow_failure: true
+ variables:
+ NAME: debian-sid-cross-armv6l
+
+
+armv7l-debian-sid-container:
+ extends: .container_job
+ allow_failure: true
+ variables:
+ NAME: debian-sid-cross-armv7l
+
+
+i686-debian-sid-container:
+ extends: .container_job
+ allow_failure: true
+ variables:
+ NAME: debian-sid-cross-i686
+
+
+mips64el-debian-sid-container:
+ extends: .container_job
+ allow_failure: true
+ variables:
+ NAME: debian-sid-cross-mips64el
+
+
+mipsel-debian-sid-container:
+ extends: .container_job
+ allow_failure: true
+ variables:
+ NAME: debian-sid-cross-mipsel
+
+
+ppc64le-debian-sid-container:
+ extends: .container_job
+ allow_failure: true
+ variables:
+ NAME: debian-sid-cross-ppc64le
+
+
+s390x-debian-sid-container:
+ extends: .container_job
+ allow_failure: true
+ variables:
+ NAME: debian-sid-cross-s390x
+
+
+mingw32-fedora-35-container:
+ extends: .container_job
+ allow_failure: true
+ variables:
+ NAME: fedora-35-cross-mingw32
+
+
+mingw64-fedora-35-container:
+ extends: .container_job
+ allow_failure: false
+ variables:
+ NAME: fedora-35-cross-mingw64
+
+
+mingw32-fedora-rawhide-container:
+ extends: .container_job
+ allow_failure: true
+ variables:
+ NAME: fedora-rawhide-cross-mingw32
+
+
+mingw64-fedora-rawhide-container:
+ extends: .container_job
+ allow_failure: true
+ variables:
+ NAME: fedora-rawhide-cross-mingw64
diff --git a/ci/gitlab/sanity-checks.yml b/ci/gitlab/sanity-checks.yml
new file mode 100644
index 0000000000..90f6ff8205
--- /dev/null
+++ b/ci/gitlab/sanity-checks.yml
@@ -0,0 +1,18 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool manifest ci/manifest.yml
+#
+#
https://gitlab.com/libvirt/libvirt-ci
+
+
+check-dco:
+ stage: sanity_checks
+ needs: []
+ image:
registry.gitlab.com/libvirt/libvirt-ci/check-dco:master
+ script:
+ - /check-dco libvirt
+ except:
+ variables:
+ - $CI_PROJECT_NAMESPACE == 'libvirt'
+ variables:
+ GIT_DEPTH: 1000
--
2.35.3