lcitool recently added support for Leap 15.4; meanwhile, Leap 15.3 has a version of nbdkit that tries to use @NBDKIT,SYSTEM as the TLS priority which then crashes in gnutls. Explicitly testing our --without-gnutls configure coverage on that platform is thus a good idea; this required tweaking build.sh to learn another variables, and reordering to put CONFIGURE_OPTS (which the user can override at pipeline time) after our hard-coded CONFIG_ARGS.
Thanks: Daniel P. Berrangé <berra...@redhat.com> --- ci/build.sh | 14 +++-- ci/buildenv/opensuse-leap-154.sh | 61 +++++++++++++++++++++ ci/containers/opensuse-leap-154.Dockerfile | 62 ++++++++++++++++++++++ ci/gitlab.yml | 1 + ci/gitlab/build-templates.yml | 5 ++ ci/gitlab/builds.yml | 20 +++++++ ci/gitlab/container-templates.yml | 1 + ci/gitlab/containers.yml | 7 +++ ci/manifest.yml | 10 +++- 9 files changed, 176 insertions(+), 5 deletions(-) create mode 100644 ci/buildenv/opensuse-leap-154.sh create mode 100644 ci/containers/opensuse-leap-154.Dockerfile diff --git a/ci/build.sh b/ci/build.sh index 3983e749..eb2fcd1c 100755 --- a/ci/build.sh +++ b/ci/build.sh @@ -4,7 +4,7 @@ set -xe skip_tests() { # Add a way to run all the tests, even the skipped ones, with an environment - # variable, so that it can be set fora branch or fork in GitLab. + # variable, so that it can be set for a branch or fork in GitLab. if test "$SKIPPED_TESTS" != "force" then # Skip tests from ci/skipped_tests if this is the right OS version @@ -33,7 +33,7 @@ skip_tests() { test_case_bckup="${test_case}_skipped_test" if ! git ls-files "$test_case" | grep -q "$test_case" then - make -C "$(dirname "$test_case")" "$(basename "$test_case")" 2>/dev/null || : + $MAKE -C "$(dirname "$test_case")" "$(basename "$test_case")" 2>/dev/null || : fi echo Backing up "$test_case" to "${test_case_bckup}" cp "$test_case" "${test_case_bckup}" @@ -72,10 +72,16 @@ main() { CONFIG_ARGS="\ --enable-gcc-warnings \ ---with-gnutls \ --with-libxml2 \ " + if test skip = "$GNUTLS" + then + CONFIG_ARGS="$CONFIG_ARGS --without-gnutls" + else + CONFIG_ARGS="$CONFIG_ARGS --with-gnutls" + fi + if test -n "$CROSS" then CONFIG_ARGS="$CONFIG_ARGS @@ -96,7 +102,7 @@ main() { fi fi - ./configure $CONFIGURE_OPTS $CONFIG_ARGS + ./configure $CONFIG_ARGS $CONFIGURE_OPTS $MAKE diff --git a/ci/buildenv/opensuse-leap-154.sh b/ci/buildenv/opensuse-leap-154.sh new file mode 100644 index 00000000..c77cd305 --- /dev/null +++ b/ci/buildenv/opensuse-leap-154.sh @@ -0,0 +1,61 @@ +# THIS FILE WAS AUTO-GENERATED +# +# $ lcitool manifest ci/manifest.yml +# +# https://gitlab.com/libvirt/libvirt-ci + +function install_buildenv() { + zypper update -y + zypper install -y \ + autoconf \ + automake \ + bash-completion \ + ca-certificates \ + ccache \ + clang \ + diffutils \ + fuse3 \ + fuse3-devel \ + gcc \ + gcc-c++ \ + git \ + glib2-devel \ + glibc-devel \ + glibc-locale \ + gnutls \ + go \ + iproute2 \ + jq \ + libev-devel \ + libgnutls-devel \ + libtool \ + libxml2-devel \ + make \ + nbd \ + nbdkit \ + ocaml \ + ocaml-findlib \ + ocaml-ocamldoc \ + perl \ + perl-Pod-Simple \ + perl-base \ + pkgconfig \ + python3-devel \ + python3-flake8 \ + qemu \ + qemu-tools \ + sed \ + util-linux \ + valgrind + rpm -qa | sort > /packages.txt + mkdir -p /usr/libexec/ccache-wrappers + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/c++ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/g++ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc +} + +export CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers" +export LANG="en_US.UTF-8" +export MAKE="/usr/bin/make" diff --git a/ci/containers/opensuse-leap-154.Dockerfile b/ci/containers/opensuse-leap-154.Dockerfile new file mode 100644 index 00000000..7330baa7 --- /dev/null +++ b/ci/containers/opensuse-leap-154.Dockerfile @@ -0,0 +1,62 @@ +# THIS FILE WAS AUTO-GENERATED +# +# $ lcitool manifest ci/manifest.yml +# +# https://gitlab.com/libvirt/libvirt-ci + +FROM registry.opensuse.org/opensuse/leap:15.4 + +RUN zypper update -y && \ + zypper install -y \ + autoconf \ + automake \ + bash-completion \ + ca-certificates \ + ccache \ + clang \ + diffutils \ + fuse3 \ + fuse3-devel \ + gcc \ + gcc-c++ \ + git \ + glib2-devel \ + glibc-devel \ + glibc-locale \ + gnutls \ + go \ + iproute2 \ + jq \ + libev-devel \ + libgnutls-devel \ + libtool \ + libxml2-devel \ + make \ + nbd \ + nbdkit \ + ocaml \ + ocaml-findlib \ + ocaml-ocamldoc \ + perl \ + perl-Pod-Simple \ + perl-base \ + pkgconfig \ + python3-devel \ + python3-flake8 \ + qemu \ + qemu-tools \ + sed \ + util-linux \ + valgrind && \ + zypper clean --all && \ + rpm -qa | sort > /packages.txt && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/c++ && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/g++ && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc + +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" +ENV LANG "en_US.UTF-8" +ENV MAKE "/usr/bin/make" diff --git a/ci/gitlab.yml b/ci/gitlab.yml index d1cb3934..68ffe725 100644 --- a/ci/gitlab.yml +++ b/ci/gitlab.yml @@ -67,6 +67,7 @@ workflow: debug: image: docker.io/library/alpine:3 stage: sanity_checks + interruptible: true needs: [] script: - printenv | sort diff --git a/ci/gitlab/build-templates.yml b/ci/gitlab/build-templates.yml index 7c30271a..6076bc47 100644 --- a/ci/gitlab/build-templates.yml +++ b/ci/gitlab/build-templates.yml @@ -26,6 +26,7 @@ .gitlab_native_build_job_prebuilt_env: image: $CI_REGISTRY/$RUN_UPSTREAM_NAMESPACE/libnbd/ci-$NAME:latest stage: builds + interruptible: true before_script: - cat /packages.txt rules: @@ -61,6 +62,7 @@ .gitlab_native_build_job_local_env: image: $IMAGE stage: builds + interruptible: true before_script: - source ci/buildenv/$NAME.sh - install_buildenv @@ -138,6 +140,7 @@ .gitlab_cross_build_job_prebuilt_env: image: $CI_REGISTRY/$RUN_UPSTREAM_NAMESPACE/libnbd/ci-$NAME-cross-$CROSS:latest stage: builds + interruptible: true before_script: - cat /packages.txt rules: @@ -173,6 +176,7 @@ .gitlab_cross_build_job_local_env: image: $IMAGE stage: builds + interruptible: true before_script: - source ci/buildenv/$NAME.sh - install_buildenv @@ -232,6 +236,7 @@ .cirrus_build_job: stage: builds image: registry.gitlab.com/libvirt/libvirt-ci/cirrus-run:master + interruptible: true needs: [] script: - source ci/cirrus/$NAME.vars diff --git a/ci/gitlab/builds.yml b/ci/gitlab/builds.yml index 45225021..c66f96b0 100644 --- a/ci/gitlab/builds.yml +++ b/ci/gitlab/builds.yml @@ -234,6 +234,7 @@ x86_64-opensuse-leap-153-prebuilt-env: optional: true allow_failure: false variables: + GNUTLS: skip NAME: opensuse-leap-153 x86_64-opensuse-leap-153-local-env: @@ -241,10 +242,29 @@ x86_64-opensuse-leap-153-local-env: needs: [] allow_failure: false variables: + GNUTLS: skip IMAGE: registry.opensuse.org/opensuse/leap:15.3 NAME: opensuse-leap-153 +x86_64-opensuse-leap-154-prebuilt-env: + extends: .native_build_job_prebuilt_env + needs: + - job: x86_64-opensuse-leap-154-container + optional: true + allow_failure: false + variables: + NAME: opensuse-leap-154 + +x86_64-opensuse-leap-154-local-env: + extends: .native_build_job_local_env + needs: [] + allow_failure: false + variables: + IMAGE: registry.opensuse.org/opensuse/leap:15.4 + NAME: opensuse-leap-154 + + x86_64-opensuse-tumbleweed-prebuilt-env: extends: .native_build_job_prebuilt_env needs: diff --git a/ci/gitlab/container-templates.yml b/ci/gitlab/container-templates.yml index a577028d..edb4aba6 100644 --- a/ci/gitlab/container-templates.yml +++ b/ci/gitlab/container-templates.yml @@ -16,6 +16,7 @@ .container_job: image: docker:stable stage: containers + interruptible: false needs: [] services: - docker:dind diff --git a/ci/gitlab/containers.yml b/ci/gitlab/containers.yml index a57af29c..68458f35 100644 --- a/ci/gitlab/containers.yml +++ b/ci/gitlab/containers.yml @@ -84,6 +84,13 @@ x86_64-opensuse-leap-153-container: NAME: opensuse-leap-153 +x86_64-opensuse-leap-154-container: + extends: .container_job + allow_failure: false + variables: + NAME: opensuse-leap-154 + + x86_64-opensuse-tumbleweed-container: extends: .container_job allow_failure: false diff --git a/ci/manifest.yml b/ci/manifest.yml index e95626ee..4c0846e1 100644 --- a/ci/manifest.yml +++ b/ci/manifest.yml @@ -55,7 +55,15 @@ targets: freebsd-current: x86_64 - opensuse-leap-153: x86_64 + opensuse-leap-153: + jobs: + - arch: x86_64 + # nbdkit TLS support is broken on 15.3 + # https://listman.redhat.com/archives/libguestfs/2022-October/030165.html + variables: + GNUTLS: skip + + opensuse-leap-154: x86_64 opensuse-tumbleweed: x86_64 -- 2.37.3 _______________________________________________ Libguestfs mailing list Libguestfs@redhat.com https://listman.redhat.com/mailman/listinfo/libguestfs