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@xxxxxxxxxx> Reviewed-by: Erik Skultety <eskultet@xxxxxxxxxx> --- 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