[Libguestfs] [libnbd PATCH 1/2] ci: Add opensuse-leap 15.4, skip TLS on 15.3

Eric Blake eblake at redhat.com
Wed Oct 19 14:46:12 UTC 2022


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é <berrange at 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



More information about the Libguestfs mailing list