[libvirt-python PATCH 0/3] gitlab: introduce CI jobs for validating python build

This introduces GitLab CI to the python module. Traditional Jenkins has validated the python build across all distros, using libvirt git. This tested one axis - a variety of python versions - but failed to test the other interesting axis - a variety of libvirt versions. This new CI setup fixes that mistake validating both axis and in the process uncovered a bug in Ubuntu 1804. Daniel P. Berrangé (3): test: workaround missing VIR_TYPED_PARAM enums in API definition gitlab: introduce CI jobs testing git master & distro libvirt travis: delete redundant configuration .gitlab-ci.yml | 172 ++++++++++++++++++++++++++++++++++ .travis.yml | 55 ----------- ci/libvirt-centos-7.dkr | 85 +++++++++++++++++ ci/libvirt-centos-8.dkr | 64 +++++++++++++ ci/libvirt-debian-10.dkr | 55 +++++++++++ ci/libvirt-debian-9.dkr | 58 ++++++++++++ ci/libvirt-debian-sid.dkr | 55 +++++++++++ ci/libvirt-fedora-30.dkr | 52 ++++++++++ ci/libvirt-fedora-31.dkr | 52 ++++++++++ ci/libvirt-fedora-rawhide.dkr | 53 +++++++++++ ci/libvirt-opensuse-151.dkr | 54 +++++++++++ ci/libvirt-ubuntu-1604.dkr | 58 ++++++++++++ ci/libvirt-ubuntu-1804.dkr | 58 ++++++++++++ ci/refresh | 21 +++++ sanitytest.py | 6 +- 15 files changed, 842 insertions(+), 56 deletions(-) create mode 100644 .gitlab-ci.yml delete mode 100644 .travis.yml create mode 100644 ci/libvirt-centos-7.dkr create mode 100644 ci/libvirt-centos-8.dkr create mode 100644 ci/libvirt-debian-10.dkr create mode 100644 ci/libvirt-debian-9.dkr create mode 100644 ci/libvirt-debian-sid.dkr create mode 100644 ci/libvirt-fedora-30.dkr create mode 100644 ci/libvirt-fedora-31.dkr create mode 100644 ci/libvirt-fedora-rawhide.dkr create mode 100644 ci/libvirt-opensuse-151.dkr create mode 100644 ci/libvirt-ubuntu-1604.dkr create mode 100644 ci/libvirt-ubuntu-1804.dkr create mode 100755 ci/refresh -- 2.25.4

On Ubuntu 1804 with libvirt 4.0.0 libvirt-python build fails running test /usr/bin/python3 sanitytest.py build/lib.linux-x86_64-3.6 /usr/share/libvirt/api/libvirt-api.xml Cannot get a value of enum VIR_TYPED_PARAM_BOOLEAN (originally VIR_DOMAIN_BLKIO_PARAM_BOOLEAN) Cannot get a value of enum VIR_TYPED_PARAM_DOUBLE (originally VIR_DOMAIN_BLKIO_PARAM_DOUBLE) Cannot get a value of enum VIR_TYPED_PARAM_INT (originally VIR_DOMAIN_BLKIO_PARAM_INT) ...snip... The code generated for the binding is still correct and so we can just whitelist this error scenario. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> --- sanitytest.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/sanitytest.py b/sanitytest.py index 1bedd55..f187c15 100644 --- a/sanitytest.py +++ b/sanitytest.py @@ -73,7 +73,11 @@ for n in second_pass: val = int(v[val]) break - if type(val) != int: + # Version 4.0.0 was broken as missing VIR_TYPED_PARAM enums + # constants. This is harmless from POV of validating API + # coverage so ignore this error. + if (type(val) != int and + not val.startswith("VIR_TYPED_PARAM_")): fail = True print("Cannot get a value of enum %s (originally %s)" % (val, name)) enumvals[typ][name] = val -- 2.25.4

On Wed, 2020-04-29 at 14:36 +0100, Daniel P. Berrangé wrote:
On Ubuntu 1804 with libvirt 4.0.0 libvirt-python build fails
s/1804/18.04/
+++ b/sanitytest.py @@ -73,7 +73,11 @@ for n in second_pass: - if type(val) != int: + # Version 4.0.0 was broken as missing VIR_TYPED_PARAM enums + # constants. This is harmless from POV of validating API + # coverage so ignore this error. + if (type(val) != int and + not val.startswith("VIR_TYPED_PARAM_")):
Should this comment also contain a reference to Ubuntu 18.04? Or is the issue present in any build of libvirt 4.0.0? Unfortunately I don't feel qualified to review this patch. I suggest that you post it on its own and get someone with libvirt-python knowledge to review it. -- Andrea Bolognani / Red Hat / Virtualization

On Thu, Apr 30, 2020 at 10:18:31AM +0200, Andrea Bolognani wrote:
On Wed, 2020-04-29 at 14:36 +0100, Daniel P. Berrangé wrote:
On Ubuntu 1804 with libvirt 4.0.0 libvirt-python build fails
s/1804/18.04/
+++ b/sanitytest.py @@ -73,7 +73,11 @@ for n in second_pass: - if type(val) != int: + # Version 4.0.0 was broken as missing VIR_TYPED_PARAM enums + # constants. This is harmless from POV of validating API + # coverage so ignore this error. + if (type(val) != int and + not val.startswith("VIR_TYPED_PARAM_")):
Should this comment also contain a reference to Ubuntu 18.04? Or is the issue present in any build of libvirt 4.0.0?
Any 4.0.0 Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

The python build needs to validate two axis - A variety of libvirt versions - A variety of python versions We get coverage for both these axis by running a build against the distro provided libvirt packages. All that is then missing is a build against the latest libvirt git master, which only needs to be run on a single distro, for which CentOS 8 is picked as a stable long life base. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> --- .gitlab-ci.yml | 172 ++++++++++++++++++++++++++++++++++ ci/libvirt-centos-7.dkr | 85 +++++++++++++++++ ci/libvirt-centos-8.dkr | 64 +++++++++++++ ci/libvirt-debian-10.dkr | 55 +++++++++++ ci/libvirt-debian-9.dkr | 58 ++++++++++++ ci/libvirt-debian-sid.dkr | 55 +++++++++++ ci/libvirt-fedora-30.dkr | 52 ++++++++++ ci/libvirt-fedora-31.dkr | 52 ++++++++++ ci/libvirt-fedora-rawhide.dkr | 53 +++++++++++ ci/libvirt-opensuse-151.dkr | 54 +++++++++++ ci/libvirt-ubuntu-1604.dkr | 58 ++++++++++++ ci/libvirt-ubuntu-1804.dkr | 58 ++++++++++++ ci/refresh | 21 +++++ 13 files changed, 837 insertions(+) create mode 100644 .gitlab-ci.yml create mode 100644 ci/libvirt-centos-7.dkr create mode 100644 ci/libvirt-centos-8.dkr create mode 100644 ci/libvirt-debian-10.dkr create mode 100644 ci/libvirt-debian-9.dkr create mode 100644 ci/libvirt-debian-sid.dkr create mode 100644 ci/libvirt-fedora-30.dkr create mode 100644 ci/libvirt-fedora-31.dkr create mode 100644 ci/libvirt-fedora-rawhide.dkr create mode 100644 ci/libvirt-opensuse-151.dkr create mode 100644 ci/libvirt-ubuntu-1604.dkr create mode 100644 ci/libvirt-ubuntu-1804.dkr create mode 100755 ci/refresh diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..bfcd31c --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,172 @@ + +stages: + - prebuild + - containers + - build + - docs + +.container_job_template: &container_job_definition + image: docker:stable + stage: containers + services: + - docker:dind + before_script: + - export TAG="${CI_REGISTRY_IMAGE}/buildenv-${NAME}:latest" + - export COMMON_TAG="${CI_REGISTRY}/libvirt/libvirt-perl/buildenv-${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/libvirt-${NAME}.dkr ci + - docker push ${TAG} + after_script: + - docker logout + +.build_git_job_template: &build_git_job_definition + stage: build + before_script: + - export MAKEFLAGS="-j$(getconf _NPROCESSORS_ONLN)" + - export SCRATCH_DIR="/tmp/scratch" + - export VROOT="${SCRATCH_DIR}/vroot" + - export LD_LIBRARY_PATH="${VROOT}/lib" + - export PATH="${PATH}:${VROOT}/bin" + - export PKG_CONFIG_PATH="${VROOT}/lib/pkgconfig" + script: + - pushd ${PWD} + - mkdir -p ${SCRATCH_DIR} + - cd ${SCRATCH_DIR} + - git clone --depth 1 https://gitlab.com/libvirt/libvirt.git src + - mkdir build + - cd build + - ../src/autogen.sh --prefix=${VROOT} --without-libvirtd + - make install + - popd + - ${PYTHON} setup.py build + - ${PYTHON} setup.py test + +.build_dist_job_template: &build_dist_job_definition + stage: build + before_script: + - export MAKEFLAGS="-j$(getconf _NPROCESSORS_ONLN)" + - export TEST_MAINTAINER=1 + script: + - ${PYTHON} setup.py build + - ${PYTHON} setup.py test + +# Check that all commits are signed-off for the DCO. +# Skip on "libvirt" namespace, since we only need to run +# this test on developer's personal forks from which +# merge requests are submitted +check-dco: + stage: prebuild + image: registry.gitlab.com/libvirt/libvirt-ci/check-dco:master + script: + - /check-dco + except: + variables: + - $CI_PROJECT_NAMESPACE == 'libvirt' + +ctr-centos-7: + <<: *container_job_definition + variables: + NAME: centos-7 + +ctr-centos-8: + <<: *container_job_definition + variables: + NAME: centos-8 + +ctr-debian-9: + <<: *container_job_definition + variables: + NAME: debian-9 + +ctr-debian-10: + <<: *container_job_definition + variables: + NAME: debian-10 + +ctr-debian-sid: + <<: *container_job_definition + variables: + NAME: debian-sid + +ctr-fedora-30: + <<: *container_job_definition + variables: + NAME: fedora-30 + +ctr-fedora-31: + <<: *container_job_definition + variables: + NAME: fedora-31 + +ctr-fedora-rawhide: + <<: *container_job_definition + variables: + NAME: fedora-rawhide + +ctr-opensuse-151: + <<: *container_job_definition + variables: + NAME: opensuse-151 + +ctr-ubuntu-1604: + <<: *container_job_definition + variables: + NAME: ubuntu-1604 + +ctr-ubuntu-1804: + <<: *container_job_definition + variables: + NAME: ubuntu-1804 + + +build-git-centos-8: + <<: *build_git_job_definition + image: ${CI_REGISTRY_IMAGE}/buildenv-centos-8:latest + + +build-dist-centos-7: + <<: *build_dist_job_definition + image: ${CI_REGISTRY_IMAGE}/buildenv-centos-7:latest + +build-dist-centos-8: + <<: *build_dist_job_definition + image: ${CI_REGISTRY_IMAGE}/buildenv-centos-8:latest + +build-dist-debian-9: + <<: *build_dist_job_definition + image: ${CI_REGISTRY_IMAGE}/buildenv-debian-9:latest + +build-dist-debian-10: + <<: *build_dist_job_definition + image: ${CI_REGISTRY_IMAGE}/buildenv-debian-10:latest + +build-dist-debian-sid: + <<: *build_dist_job_definition + image: ${CI_REGISTRY_IMAGE}/buildenv-debian-sid:latest + +build-dist-fedora-30: + <<: *build_dist_job_definition + image: ${CI_REGISTRY_IMAGE}/buildenv-fedora-30:latest + +build-dist-fedora-31: + <<: *build_dist_job_definition + image: ${CI_REGISTRY_IMAGE}/buildenv-fedora-31:latest + +build-dist-fedora-rawhide: + <<: *build_dist_job_definition + image: ${CI_REGISTRY_IMAGE}/buildenv-fedora-rawhide:latest + +build-dist-opensuse-151: + <<: *build_dist_job_definition + image: ${CI_REGISTRY_IMAGE}/buildenv-opensuse-151:latest + +build-dist-ubuntu-1604: + <<: *build_dist_job_definition + image: ${CI_REGISTRY_IMAGE}/buildenv-ubuntu-1604:latest + +build-dist-ubuntu-1804: + <<: *build_dist_job_definition + image: ${CI_REGISTRY_IMAGE}/buildenv-ubuntu-1804:latest diff --git a/ci/libvirt-centos-7.dkr b/ci/libvirt-centos-7.dkr new file mode 100644 index 0000000..9ff638b --- /dev/null +++ b/ci/libvirt-centos-7.dkr @@ -0,0 +1,85 @@ +FROM centos:7 + +RUN echo -e '[openvz]\n\ +name=OpenVZ addons\n\ +baseurl=https://download.openvz.org/virtuozzo/releases/openvz-7.0.11-235/x86_64/os/\n\ +enabled=1\n\ +gpgcheck=1\n\ +skip_if_unavailable=0\n\ +metadata_expire=6h\n\ +priority=90\n\ +includepkgs=libprl*' > /etc/yum.repos.d/openvz.repo && \ + echo -e '-----BEGIN PGP PUBLIC KEY BLOCK-----\n\ +Version: GnuPG v2.0.22 (GNU/Linux)\n\ +\n\ +mI0EVl80nQEEAKrEeyeTCwrzS9kYedZ/sAc/GUqlb81C7pA9SaR3fyck5mVw1Ogk\n\ +YdmNBPM2kY7QDxR9F0EpSpnxSCAXZXugsQ8KzZ0DRLVeBDQyGs9IGK5hI0zzxIil\n\ +BzfvIexLiQQhLy7YlIi8Jt/uUqKkW0pIMNMGcduY97VATtczpncpkmSzABEBAAG0\n\ +SFZpcnR1b3p6byBUZWFtIChHUEcga2V5IHNpZ25hdHVyZSBmb3IgcGFja2FnZXMp\n\ +IDxzZWN1cml0eUB2aXJ0dW96em8uY29tPoi5BBMBAgAjBQJWXzSdAhsDBwsJCAcD\n\ +AgEGFQgCCQoLBBYCAwECHgECF4AACgkQygt9GUTNrSruIgP/er70Eyo73A1gfrjv\n\ +oPUkyo4rslVRZu3qqCwoMFtJc/Z/UxWgEka1buorlcGLa6eO/EZ49c0n+KGa4Kvt\n\ +EUboIq0yEu5i0FyAj92ifm+hNhoAbGfm0cZ4/fD0oGr3l8OsQo4+iHX4xAPwFe7Y\n\ +zABuB8I1ZDZ4OIp5tDfTTuF2LT24jQRWXzSdAQQAog2Aqb+Ptl68O7cQhWLjVGkj\n\ +yyigZrdeReLx3HloKJPBeQ/kA6uvMJc/IYS3uppMWXv9v+QenS6uhP1TUJ2k9FvM\n\ +t94MQZfALN7Vpf8AF+UeWu4Ru+y4BNzcFhrPhIFNFChOR2QqW6FkgE57D9I177NC\n\ +oJMyrlNe8wcGa178An8AEQEAAYifBBgBAgAJBQJWXzSdAhsMAAoJEMoLfRlEza0q\n\ +bKwD/3+OFVIEXnIv5XgdGRNX5fHggsUN1bb8gva7HANRlKdd4LD8foDM3F/yv/3V\n\ +igG14D5EjKz56SaBDNgiI4++hOzb2M8jhAsR86jxkXFrrP1U3ZNRKg6av9DPFAPS\n\ +WEiJKtQrZDJloqtyi/mmRa1VsV7RYR0VPJjhK/R8EQ7Ysshy\n\ +=fRMg\n\ +-----END PGP PUBLIC KEY BLOCK-----' > /etc/pki/rpm-gpg/RPM-GPG-KEY-OpenVZ && \ + rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-OpenVZ && \ + yum install -y epel-release && \ + yum update -y && \ + yum install -y \ + autoconf \ + automake \ + bash \ + bash-completion \ + ca-certificates \ + ccache \ + chrony \ + gcc \ + gdb \ + gettext \ + gettext-devel \ + git \ + glibc-common \ + glibc-devel \ + libtool \ + libvirt-devel \ + lsof \ + make \ + net-tools \ + ninja-build \ + patch \ + perl \ + pkgconfig \ + python3 \ + python3-pip \ + python3-setuptools \ + python36-devel \ + python36-lxml \ + python36-nose \ + rpm-build \ + screen \ + strace \ + sudo \ + vim && \ + yum autoremove -y && \ + yum clean all -y && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/$(basename /usr/bin/gcc) + +RUN pip3 install \ + meson==0.49.0 + +ENV LANG "en_US.UTF-8" + +ENV MAKE "/usr/bin/make" +ENV NINJA "/usr/bin/ninja-build" +ENV PYTHON "/usr/bin/python3" + +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" diff --git a/ci/libvirt-centos-8.dkr b/ci/libvirt-centos-8.dkr new file mode 100644 index 0000000..bf3ec47 --- /dev/null +++ b/ci/libvirt-centos-8.dkr @@ -0,0 +1,64 @@ +FROM centos:8 + +RUN dnf install 'dnf-command(config-manager)' -y && \ + dnf config-manager --set-enabled PowerTools -y && \ + dnf install -y epel-release && \ + dnf update -y && \ + dnf install -y \ + autoconf \ + automake \ + bash \ + bash-completion \ + ca-certificates \ + ccache \ + chrony \ + gcc \ + gdb \ + gettext \ + gettext-devel \ + git \ + glib2-devel \ + glibc-devel \ + glibc-langpack-en \ + gnutls-devel \ + libnl3-devel \ + libpcap-devel \ + libtirpc-devel \ + libtool \ + libvirt-devel \ + libxml2 \ + libxml2-devel \ + libxslt \ + lsof \ + make \ + meson \ + net-tools \ + ninja-build \ + patch \ + perl \ + pkgconfig \ + python3 \ + python3-devel \ + python3-docutils \ + python3-lxml \ + python3-nose \ + python3-setuptools \ + rpcgen \ + rpm-build \ + screen \ + strace \ + sudo \ + vim && \ + dnf autoremove -y && \ + dnf clean all -y && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/$(basename /usr/bin/gcc) + +ENV LANG "en_US.UTF-8" + +ENV MAKE "/usr/bin/make" +ENV NINJA "/usr/bin/ninja" +ENV PYTHON "/usr/bin/python3" + +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" diff --git a/ci/libvirt-debian-10.dkr b/ci/libvirt-debian-10.dkr new file mode 100644 index 0000000..7d98dac --- /dev/null +++ b/ci/libvirt-debian-10.dkr @@ -0,0 +1,55 @@ +FROM debian:10 + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + apt-get dist-upgrade -y && \ + apt-get install --no-install-recommends -y \ + autoconf \ + automake \ + autopoint \ + bash \ + bash-completion \ + ca-certificates \ + ccache \ + chrony \ + gcc \ + gdb \ + gettext \ + git \ + libc6-dev \ + libtool \ + libtool-bin \ + libvirt-dev \ + locales \ + lsof \ + make \ + meson \ + net-tools \ + ninja-build \ + patch \ + perl \ + pkgconf \ + python3 \ + python3-dev \ + python3-lxml \ + python3-nose \ + python3-setuptools \ + screen \ + strace \ + sudo \ + vim && \ + apt-get autoremove -y && \ + apt-get autoclean -y && \ + sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \ + dpkg-reconfigure locales && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/$(basename /usr/bin/gcc) + +ENV LANG "en_US.UTF-8" + +ENV MAKE "/usr/bin/make" +ENV NINJA "/usr/bin/ninja" +ENV PYTHON "/usr/bin/python3" + +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" diff --git a/ci/libvirt-debian-9.dkr b/ci/libvirt-debian-9.dkr new file mode 100644 index 0000000..1c565fa --- /dev/null +++ b/ci/libvirt-debian-9.dkr @@ -0,0 +1,58 @@ +FROM debian:9 + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + apt-get dist-upgrade -y && \ + apt-get install --no-install-recommends -y \ + autoconf \ + automake \ + autopoint \ + bash \ + bash-completion \ + ca-certificates \ + ccache \ + chrony \ + gcc \ + gdb \ + gettext \ + git \ + libc6-dev \ + libtool \ + libtool-bin \ + libvirt-dev \ + locales \ + lsof \ + make \ + net-tools \ + ninja-build \ + patch \ + perl \ + pkgconf \ + python3 \ + python3-dev \ + python3-lxml \ + python3-nose \ + python3-pip \ + python3-setuptools \ + screen \ + strace \ + sudo \ + vim && \ + apt-get autoremove -y && \ + apt-get autoclean -y && \ + sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \ + dpkg-reconfigure locales && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/$(basename /usr/bin/gcc) + +RUN pip3 install \ + meson==0.49.0 + +ENV LANG "en_US.UTF-8" + +ENV MAKE "/usr/bin/make" +ENV NINJA "/usr/bin/ninja" +ENV PYTHON "/usr/bin/python3" + +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" diff --git a/ci/libvirt-debian-sid.dkr b/ci/libvirt-debian-sid.dkr new file mode 100644 index 0000000..a9f0ee4 --- /dev/null +++ b/ci/libvirt-debian-sid.dkr @@ -0,0 +1,55 @@ +FROM debian:sid + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + apt-get dist-upgrade -y && \ + apt-get install --no-install-recommends -y \ + autoconf \ + automake \ + autopoint \ + bash \ + bash-completion \ + ca-certificates \ + ccache \ + chrony \ + gcc \ + gdb \ + gettext \ + git \ + libc6-dev \ + libtool \ + libtool-bin \ + libvirt-dev \ + locales \ + lsof \ + make \ + meson \ + net-tools \ + ninja-build \ + patch \ + perl \ + pkgconf \ + python3 \ + python3-dev \ + python3-lxml \ + python3-nose \ + python3-setuptools \ + screen \ + strace \ + sudo \ + vim && \ + apt-get autoremove -y && \ + apt-get autoclean -y && \ + sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \ + dpkg-reconfigure locales && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/$(basename /usr/bin/gcc) + +ENV LANG "en_US.UTF-8" + +ENV MAKE "/usr/bin/make" +ENV NINJA "/usr/bin/ninja" +ENV PYTHON "/usr/bin/python3" + +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" diff --git a/ci/libvirt-fedora-30.dkr b/ci/libvirt-fedora-30.dkr new file mode 100644 index 0000000..63cd0f2 --- /dev/null +++ b/ci/libvirt-fedora-30.dkr @@ -0,0 +1,52 @@ +FROM fedora:30 + +RUN dnf update -y && \ + dnf install -y \ + autoconf \ + automake \ + bash \ + bash-completion \ + ca-certificates \ + ccache \ + chrony \ + cppi \ + gcc \ + gdb \ + gettext \ + gettext-devel \ + git \ + glibc-devel \ + glibc-langpack-en \ + libtool \ + libvirt-devel \ + lsof \ + make \ + meson \ + net-tools \ + ninja-build \ + patch \ + perl \ + pkgconfig \ + python3 \ + python3-devel \ + python3-lxml \ + python3-nose \ + python3-setuptools \ + rpm-build \ + screen \ + strace \ + sudo \ + vim && \ + dnf autoremove -y && \ + dnf clean all -y && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/$(basename /usr/bin/gcc) + +ENV LANG "en_US.UTF-8" + +ENV MAKE "/usr/bin/make" +ENV NINJA "/usr/bin/ninja" +ENV PYTHON "/usr/bin/python3" + +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" diff --git a/ci/libvirt-fedora-31.dkr b/ci/libvirt-fedora-31.dkr new file mode 100644 index 0000000..3307e5c --- /dev/null +++ b/ci/libvirt-fedora-31.dkr @@ -0,0 +1,52 @@ +FROM fedora:31 + +RUN dnf update -y && \ + dnf install -y \ + autoconf \ + automake \ + bash \ + bash-completion \ + ca-certificates \ + ccache \ + chrony \ + cppi \ + gcc \ + gdb \ + gettext \ + gettext-devel \ + git \ + glibc-devel \ + glibc-langpack-en \ + libtool \ + libvirt-devel \ + lsof \ + make \ + meson \ + net-tools \ + ninja-build \ + patch \ + perl \ + pkgconfig \ + python3 \ + python3-devel \ + python3-lxml \ + python3-nose \ + python3-setuptools \ + rpm-build \ + screen \ + strace \ + sudo \ + vim && \ + dnf autoremove -y && \ + dnf clean all -y && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/$(basename /usr/bin/gcc) + +ENV LANG "en_US.UTF-8" + +ENV MAKE "/usr/bin/make" +ENV NINJA "/usr/bin/ninja" +ENV PYTHON "/usr/bin/python3" + +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" diff --git a/ci/libvirt-fedora-rawhide.dkr b/ci/libvirt-fedora-rawhide.dkr new file mode 100644 index 0000000..475c757 --- /dev/null +++ b/ci/libvirt-fedora-rawhide.dkr @@ -0,0 +1,53 @@ +FROM fedora:rawhide + +RUN dnf update -y --nogpgcheck fedora-gpg-keys && \ + dnf update -y && \ + dnf install -y \ + autoconf \ + automake \ + bash \ + bash-completion \ + ca-certificates \ + ccache \ + chrony \ + cppi \ + gcc \ + gdb \ + gettext \ + gettext-devel \ + git \ + glibc-devel \ + glibc-langpack-en \ + libtool \ + libvirt-devel \ + lsof \ + make \ + meson \ + net-tools \ + ninja-build \ + patch \ + perl \ + pkgconfig \ + python3 \ + python3-devel \ + python3-lxml \ + python3-nose \ + python3-setuptools \ + rpm-build \ + screen \ + strace \ + sudo \ + vim && \ + dnf autoremove -y && \ + dnf clean all -y && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/$(basename /usr/bin/gcc) + +ENV LANG "en_US.UTF-8" + +ENV MAKE "/usr/bin/make" +ENV NINJA "/usr/bin/ninja" +ENV PYTHON "/usr/bin/python3" + +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" diff --git a/ci/libvirt-opensuse-151.dkr b/ci/libvirt-opensuse-151.dkr new file mode 100644 index 0000000..526aadf --- /dev/null +++ b/ci/libvirt-opensuse-151.dkr @@ -0,0 +1,54 @@ +FROM opensuse/leap:15.1 + +RUN zypper update -y && \ + zypper install -y \ + autoconf \ + automake \ + bash \ + bash-completion \ + ca-certificates \ + ccache \ + chrony \ + cppi \ + gcc \ + gdb \ + gettext \ + gettext-devel \ + git \ + glibc-devel \ + glibc-locale \ + libtool \ + libvirt-devel \ + lsof \ + make \ + net-tools \ + ninja \ + patch \ + perl \ + pkgconfig \ + python3 \ + python3-devel \ + python3-lxml \ + python3-nose \ + python3-pip \ + python3-setuptools \ + rpm-build \ + screen \ + strace \ + sudo \ + vim && \ + zypper clean --all && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/$(basename /usr/bin/gcc) + +RUN pip3 install \ + meson==0.49.0 + +ENV LANG "en_US.UTF-8" + +ENV MAKE "/usr/bin/make" +ENV NINJA "/usr/bin/ninja" +ENV PYTHON "/usr/bin/python3" + +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" diff --git a/ci/libvirt-ubuntu-1604.dkr b/ci/libvirt-ubuntu-1604.dkr new file mode 100644 index 0000000..9652cf7 --- /dev/null +++ b/ci/libvirt-ubuntu-1604.dkr @@ -0,0 +1,58 @@ +FROM ubuntu:16.04 + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + apt-get dist-upgrade -y && \ + apt-get install --no-install-recommends -y \ + autoconf \ + automake \ + autopoint \ + bash \ + bash-completion \ + ca-certificates \ + ccache \ + chrony \ + gcc \ + gdb \ + gettext \ + git \ + libc6-dev \ + libtool \ + libtool-bin \ + libvirt-dev \ + locales \ + lsof \ + make \ + net-tools \ + ninja-build \ + patch \ + perl \ + pkgconf \ + python3 \ + python3-dev \ + python3-lxml \ + python3-nose \ + python3-pip \ + python3-setuptools \ + screen \ + strace \ + sudo \ + vim && \ + apt-get autoremove -y && \ + apt-get autoclean -y && \ + sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \ + dpkg-reconfigure locales && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/$(basename /usr/bin/gcc) + +RUN pip3 install \ + meson==0.49.0 + +ENV LANG "en_US.UTF-8" + +ENV MAKE "/usr/bin/make" +ENV NINJA "/usr/bin/ninja" +ENV PYTHON "/usr/bin/python3" + +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" diff --git a/ci/libvirt-ubuntu-1804.dkr b/ci/libvirt-ubuntu-1804.dkr new file mode 100644 index 0000000..7ec35d8 --- /dev/null +++ b/ci/libvirt-ubuntu-1804.dkr @@ -0,0 +1,58 @@ +FROM ubuntu:18.04 + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + apt-get dist-upgrade -y && \ + apt-get install --no-install-recommends -y \ + autoconf \ + automake \ + autopoint \ + bash \ + bash-completion \ + ca-certificates \ + ccache \ + chrony \ + gcc \ + gdb \ + gettext \ + git \ + libc6-dev \ + libtool \ + libtool-bin \ + libvirt-dev \ + locales \ + lsof \ + make \ + net-tools \ + ninja-build \ + patch \ + perl \ + pkgconf \ + python3 \ + python3-dev \ + python3-lxml \ + python3-nose \ + python3-pip \ + python3-setuptools \ + screen \ + strace \ + sudo \ + vim && \ + apt-get autoremove -y && \ + apt-get autoclean -y && \ + sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \ + dpkg-reconfigure locales && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/$(basename /usr/bin/gcc) + +RUN pip3 install \ + meson==0.49.0 + +ENV LANG "en_US.UTF-8" + +ENV MAKE "/usr/bin/make" +ENV NINJA "/usr/bin/ninja" +ENV PYTHON "/usr/bin/python3" + +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" diff --git a/ci/refresh b/ci/refresh new file mode 100755 index 0000000..2e7b3be --- /dev/null +++ b/ci/refresh @@ -0,0 +1,21 @@ +#!/bin/sh + +if test -z "$1" +then + echo "syntax: $0 PATH-TO-LCITOOL" + exit 1 +fi + +LCITOOL=$1 + +HOSTS=$(${LCITOOL} hosts | grep -v freebsd) + +for host in ${HOSTS} +do + if test "$host" == "libvirt-centos-8" + then + ${LCITOOL} dockerfile $host libvirt-minimal,libvirt-dist,libvirt-python > $host.dkr + else + ${LCITOOL} dockerfile $host libvirt-dist,libvirt-python > $host.dkr + fi +done -- 2.25.4

On Wed, 2020-04-29 at 14:36 +0100, Daniel P. Berrangé wrote:
+++ b/.gitlab-ci.yml @@ -0,0 +1,172 @@ +.container_job_template: &container_job_definition + image: docker:stable + stage: containers + services: + - docker:dind + before_script: + - export TAG="${CI_REGISTRY_IMAGE}/buildenv-${NAME}:latest" + - export COMMON_TAG="${CI_REGISTRY}/libvirt/libvirt-perl/buildenv-${NAME}:latest"
Since we're now storing images directly under the project's namespace on registry.gitlab.com and not somewhere more public like Quay, where people could conceivably look for a container image that can be used to *run* libvirt and friends instead of build them, I think we can safely drop the buildenv- prefix.
+ - 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/libvirt-${NAME}.dkr ci
Using a .dkr extension for Dockerfiles is very non-standard, and vim for example doesn't recognize it as a Dockerfile because of that. Please use either $OS.Dockerfile or, even better, $OS/Dockerfile, which would avoid the need to use the -f option in the build command.
+.build_git_job_template: &build_git_job_definition + stage: build + before_script: + - export MAKEFLAGS="-j$(getconf _NPROCESSORS_ONLN)" + - export SCRATCH_DIR="/tmp/scratch" + - export VROOT="${SCRATCH_DIR}/vroot" + - export LD_LIBRARY_PATH="${VROOT}/lib" + - export PATH="${PATH}:${VROOT}/bin" + - export PKG_CONFIG_PATH="${VROOT}/lib/pkgconfig" + script: + - pushd ${PWD} + - mkdir -p ${SCRATCH_DIR} + - cd ${SCRATCH_DIR} + - git clone --depth 1 https://gitlab.com/libvirt/libvirt.git src + - mkdir build + - cd build + - ../src/autogen.sh --prefix=${VROOT} --without-libvirtd + - make install + - popd + - ${PYTHON} setup.py build + - ${PYTHON} setup.py test
Style-wise, all the scripts introduced in this patch contain a lot of unnecessary curly braces and could use a bit more quoting, so it'd be nice (but not blocking) if you could clean that up.
+.build_dist_job_template: &build_dist_job_definition + stage: build + before_script: + - export MAKEFLAGS="-j$(getconf _NPROCESSORS_ONLN)" + - export TEST_MAINTAINER=1
Is TEST_MAINTAINER a thing for libvirt-python? The only reference to it I could find in the libvirt-ci repo is in the job definition for libvirt-perl.
+ctr-centos-7: + <<: *container_job_definition + variables: + NAME: centos-7
Not to keen on the ctr- prefix. I understand you're trying to keep the job names short so that they all fit in the tiny boxes in the pipeline overview page, but I don't think that should be an absolute requirement considering that the first thing you're going to do when you see a failure there is to click on the name of the job to see more details, and when you do so the full name will be displayed quite prominently in the top-right corner in a way that's actually readable, unlike the cut-off low-constrast version that's on the pipeline overview page...
+build-git-centos-8: + <<: *build_git_job_definition + image: ${CI_REGISTRY_IMAGE}/buildenv-centos-8:latest
... and these slightly longer names already get cut off anyway. [...]
+++ b/ci/refresh @@ -0,0 +1,21 @@ +#!/bin/sh + +if test -z "$1" +then + echo "syntax: $0 PATH-TO-LCITOOL" + exit 1 +fi
I'd also check that whatever the path is pointing to is executable. The indentation is also off - two spaces instead of four.
+LCITOOL=$1 + +HOSTS=$(${LCITOOL} hosts | grep -v freebsd) + +for host in ${HOSTS} +do + if test "$host" == "libvirt-centos-8"
== is a bashism, use the portable = instead.
+ then + ${LCITOOL} dockerfile $host libvirt-minimal,libvirt-dist,libvirt-python > $host.dkr + else + ${LCITOOL} dockerfile $host libvirt-dist,libvirt-python > $host.dkr + fi +done
The indentation is off here, I think some tabs sneaked in. We should also add a short README that tells people what this directory is all about and how to make changes to it, but we can come up with something that works for all repos and push it everywhere as a follow-up enhancement. Overall, aside from the nits pointed out above, the idea is solid and the implementation looks good. -- Andrea Bolognani / Red Hat / Virtualization

On Thu, Apr 30, 2020 at 10:16:32AM +0200, Andrea Bolognani wrote:
On Wed, 2020-04-29 at 14:36 +0100, Daniel P. Berrangé wrote:
+++ b/.gitlab-ci.yml @@ -0,0 +1,172 @@ +.container_job_template: &container_job_definition + image: docker:stable + stage: containers + services: + - docker:dind + before_script: + - export TAG="${CI_REGISTRY_IMAGE}/buildenv-${NAME}:latest" + - export COMMON_TAG="${CI_REGISTRY}/libvirt/libvirt-perl/buildenv-${NAME}:latest"
Since we're now storing images directly under the project's namespace on registry.gitlab.com and not somewhere more public like Quay, where people could conceivably look for a container image that can be used to *run* libvirt and friends instead of build them, I think we can safely drop the buildenv- prefix.
The GitLab container registry is just as public, so I think the rationale still stands. Especially since when users submit a merge request, these containers are going to magically appear in their fork. I think can simplify the prefix to "ci-" hough.
+.build_dist_job_template: &build_dist_job_definition + stage: build + before_script: + - export MAKEFLAGS="-j$(getconf _NPROCESSORS_ONLN)" + - export TEST_MAINTAINER=1
Is TEST_MAINTAINER a thing for libvirt-python? The only reference to it I could find in the libvirt-ci repo is in the job definition for libvirt-perl.
I have another change for python that uses it, but havent sent it yet.
+ctr-centos-7: + <<: *container_job_definition + variables: + NAME: centos-7
Not to keen on the ctr- prefix. I understand you're trying to keep the job names short so that they all fit in the tiny boxes in the pipeline overview page, but I don't think that should be an absolute requirement considering that the first thing you're going to do when you see a failure there is to click on the name of the job to see more details, and when you do so the full name will be displayed quite prominently in the top-right corner in a way that's actually readable, unlike the cut-off low-constrast version that's on the pipeline overview page...
I'll just switch to a "-container" suffix instead, so the most important info is first.
+build-git-centos-8: + <<: *build_git_job_definition + image: ${CI_REGISTRY_IMAGE}/buildenv-centos-8:latest
... and these slightly longer names already get cut off anyway.
Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

On Thu, 2020-04-30 at 12:59 +0100, Daniel P. Berrangé wrote:
On Thu, Apr 30, 2020 at 10:16:32AM +0200, Andrea Bolognani wrote:
On Wed, 2020-04-29 at 14:36 +0100, Daniel P. Berrangé wrote:
+ before_script: + - export TAG="${CI_REGISTRY_IMAGE}/buildenv-${NAME}:latest" + - export COMMON_TAG="${CI_REGISTRY}/libvirt/libvirt-perl/buildenv-${NAME}:latest"
Since we're now storing images directly under the project's namespace on registry.gitlab.com and not somewhere more public like Quay, where people could conceivably look for a container image that can be used to *run* libvirt and friends instead of build them, I think we can safely drop the buildenv- prefix.
The GitLab container registry is just as public, so I think the rationale still stands. Especially since when users submit a merge request, these containers are going to magically appear in their fork. I think can simplify the prefix to "ci-" hough.
Sounds good.
+.build_dist_job_template: &build_dist_job_definition + stage: build + before_script: + - export MAKEFLAGS="-j$(getconf _NPROCESSORS_ONLN)" + - export TEST_MAINTAINER=1
Is TEST_MAINTAINER a thing for libvirt-python? The only reference to it I could find in the libvirt-ci repo is in the job definition for libvirt-perl.
I have another change for python that uses it, but havent sent it yet.
Okay, so maybe introduce its use in GitLab CI at the same time as you add support for it in the project proper. Additional thing that I failed to mention the first time around: you only set this environment variable in build_dist_job_template, but you should probably have it in build_git_job_template as well.
+ctr-centos-7: + <<: *container_job_definition + variables: + NAME: centos-7
Not to keen on the ctr- prefix. I understand you're trying to keep the job names short so that they all fit in the tiny boxes in the pipeline overview page, but I don't think that should be an absolute requirement considering that the first thing you're going to do when you see a failure there is to click on the name of the job to see more details, and when you do so the full name will be displayed quite prominently in the top-right corner in a way that's actually readable, unlike the cut-off low-constrast version that's on the pipeline overview page...
I'll just switch to a "-container" suffix instead, so the most important info is first.
Sounds good. Please rename the build jobs accordingly at the same time. -- Andrea Bolognani / Red Hat / Virtualization

Now that we're standardizing on GitLab CI for both official gating CI and developer CI, there's no compelling reason to continue to support Travis CI. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> --- .travis.yml | 55 ----------------------------------------------------- 1 file changed, 55 deletions(-) delete mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index fe24957..0000000 --- a/.travis.yml +++ /dev/null @@ -1,55 +0,0 @@ -language: python -os: linux -dist: xenial - -python: - - 3.6 - -env: - - LIBVIRT=1.2.0 EXT=gz - - LIBVIRT=2.0.0 EXT=xz - - LIBVIRT=3.6.0 EXT=xz - - LIBVIRT=4.5.0 EXT=xz - - LIBVIRT=5.0.0 EXT=xz - -install: - - sudo apt-get -qqy build-dep libvirt libxml2-dev - - sudo apt-get -qqy install curl - - pip install -r requirements-test.txt - - curl -O -s https://libvirt.org/sources/libvirt-${LIBVIRT}.tar.${EXT} - - tar -xf libvirt-${LIBVIRT}.tar.${EXT} - - pushd libvirt-${LIBVIRT} - - | - ./configure --prefix=`pwd`/../libvirt-vroot \ - --without-libvirtd \ - --without-esx \ - --without-vbox \ - --without-libxl \ - --without-xen \ - --without-qemu \ - --without-lxc \ - --without-hyperv \ - --without-macvtap \ - --disable-werror - - make - - make install - - popd - -script: - - LD_LIBRARY_PATH=`pwd`/libvirt-vroot/lib PKG_CONFIG_PATH=`pwd`/libvirt-vroot/lib/pkgconfig python setup.py build sdist test - -notifications: - irc: - # The channel name "irc.oftc.net#virt" is encrypted against libvirt/libvirt-python - # to prevent IRC notifications from github forks. This was created using: - # $ travis encrypt -r "libvirt/libvirt-python" "irc.oftc.net#virt" - channels: - - secure: "K4JrbRpz4CHtZ1vjthVwseT8K6INJgjtZethP4DN1jOpm1uC5esbe1Q1qJOfB92JbMcdM6DNjrVg5eyTJj35aD9UoGpTUcPMsYrhlTPHZtfAuLv/at2eB2XRmETlhiXHgI6LizX6gTiwGW5ZHYwGChzumWxu141d/L9harNh9R6z8XH9uJpkNdOAIsJcwS56XGZ74CKsrqF5dK6ZYPIyP+i7gPO67gEWo0oD6TiJKR908fw03ZiXarIFmLRlk4MbHywLRF0byfD0gg2Ht/tDX73+59QXjLKo/GvQecwoU8UuuFRJlyhUfvm1JYYydnS+O7fPJvI0FWlYFY7i76aeVqkARHRpHknFueT6kZADOmiyMLuvdr+gWVuyIdX33vVJtDm4T1OtNMG/wy9EUZUU1vEu+gHhaRkf/O0GkMj0Hac4I14BGyd/Wdhto6zWojFiMEG/HRHey6l15MBQu49QyW/YMyWi/LeBWXuCUgwQ/ij5EPgsn36OxCafV9zMz0oXZskwX6rJGQRZsdgdwYvt2hP3muLaJbwVyT0bGlOJDJieOa/LVKOXPcQm26aGfyMuLgm0//E9v++6W1IDKh6+BNsfTKAwTxlAvJyz6Bns3XuUJUxUz2+uQVSS6S3EwEZUJ+yHDd2F4sX5OP1L7TWIOWFbI4vQK90ZZ7/jgiYQbwo=" - on_success: change - on_failure: always - email: - # The list name 'libvirt-ci@redhat.com" is encrypted against libvirt/libvirt-python - # to prevent IRC notifications from github forks. This was created using: - # $ travis encrypt -r "libvirt/libvirt-python" "libvirt-ci@redhat.com" - recipients: - - secure: "l6TTLcEcXdDEldHE2NgSIdt6a0k99ug3hp2W4IlnqJWJfIk/87nysJtLNrA0va20pPApCa3iJfMq4PUmBGiIIimTN0/KgC7tONDraogXhCbgfZp9Ejy/57TXxygSp4oum2kDw/c5uLnfrFV/xcn1fk6hvH6CD3bVcJPOQ/mc5FSKLqN5UzwqNnMpMTtG9qxCwfXJ/Bdm9fbURfezC7djcYRwRfPUe3TSD0L76G2HnQnSy4RqR3KFSjQHFPnSGM5IbsokbOaFKCyp/pHOt7QomQaY7YAPX/K9O+eP+hkkp6DGADkkumHctcgnMoyxpahf7pNKw9S8JYabH2NwREIq8whbp9Mo+R4rYO2ozroLWHaboYs/pBLrs606ivTwOmWGRCpJdCmmKTiZNyo6MRrwiOM6x+2YHUTMOa2kVheRNzaaxMFzHPW2kZ20bujPhfViJsRYj9flo5GJXJLyjluGZK5RjrguNJeIh8VJNBiSHW37uj7drmNBsqMad+65mf/4xtGITBqhz5Spx5R9UMZbuiJvcm8GasJMMdQ+bCfuWYjF2nZvSvFEr54Ii1YrDp6FKQ8YG1aD1/D8Z0/b3pLd/8Pn+M9yIWyO/Sto5TbSUjxBTmTStuDmtYE5uu1miYebvgJH5MovWPBegYgrfI417kPJgCG3q/R0YcZFMKFfQyo=" -- 2.25.4

On Wed, 2020-04-29 at 14:37 +0100, Daniel P. Berrangé wrote:
Now that we're standardizing on GitLab CI for both official gating CI and developer CI, there's no compelling reason to continue to support Travis CI.
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> --- .travis.yml | 55 ----------------------------------------------------- 1 file changed, 55 deletions(-) delete mode 100644 .travis.yml
I guess libvirt-python works on macOS, and it would be nice to have that additional coverage; that said, we don't have such a job at the moment, so that would have to be a separate patch anyway. Reviewed-by: Andrea Bolognani <abologna@redhat.com> -- Andrea Bolognani / Red Hat / Virtualization
participants (2)
-
Andrea Bolognani
-
Daniel P. Berrangé