[PATCH libvirt-dbus v2 2/3] gitlab: introduce CI jobs testing git master & distro libvirt

Daniel P. Berrangé berrange at redhat.com
Wed Jun 24 16:26:55 UTC 2020


The dbus build needs to validate one axis

  - A variety of libvirt versions

We test a variety of libvirt versions 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.

RPM build and tests are skipped on CentOS 7 since it lacks the required
min version of some packages.

Signed-off-by: Daniel P. Berrangé <berrange at redhat.com>
---
 .gitlab-ci.yml                                | 218 ++++++++++++++++++
 ci/containers/README.rst                      |  14 ++
 ci/containers/libvirt-centos-7.Dockerfile     |  90 ++++++++
 ci/containers/libvirt-centos-8.Dockerfile     |  68 ++++++
 .../libvirt-centos-stream.Dockerfile          |  69 ++++++
 ci/containers/libvirt-debian-10.Dockerfile    |  61 +++++
 ci/containers/libvirt-debian-9.Dockerfile     |  64 +++++
 ci/containers/libvirt-debian-sid.Dockerfile   |  61 +++++
 ci/containers/libvirt-fedora-31.Dockerfile    |  58 +++++
 ci/containers/libvirt-fedora-32.Dockerfile    |  58 +++++
 .../libvirt-fedora-rawhide.Dockerfile         |  59 +++++
 ci/containers/libvirt-opensuse-151.Dockerfile |  60 +++++
 ci/containers/libvirt-ubuntu-1804.Dockerfile  |  64 +++++
 ci/containers/libvirt-ubuntu-2004.Dockerfile  |  61 +++++
 ci/containers/refresh                         |  32 +++
 15 files changed, 1037 insertions(+)
 create mode 100644 ci/containers/README.rst
 create mode 100644 ci/containers/libvirt-centos-7.Dockerfile
 create mode 100644 ci/containers/libvirt-centos-8.Dockerfile
 create mode 100644 ci/containers/libvirt-centos-stream.Dockerfile
 create mode 100644 ci/containers/libvirt-debian-10.Dockerfile
 create mode 100644 ci/containers/libvirt-debian-9.Dockerfile
 create mode 100644 ci/containers/libvirt-debian-sid.Dockerfile
 create mode 100644 ci/containers/libvirt-fedora-31.Dockerfile
 create mode 100644 ci/containers/libvirt-fedora-32.Dockerfile
 create mode 100644 ci/containers/libvirt-fedora-rawhide.Dockerfile
 create mode 100644 ci/containers/libvirt-opensuse-151.Dockerfile
 create mode 100644 ci/containers/libvirt-ubuntu-1804.Dockerfile
 create mode 100644 ci/containers/libvirt-ubuntu-2004.Dockerfile
 create mode 100755 ci/containers/refresh

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 50dae92..9b61c70 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,6 +1,99 @@
 
 stages:
   - prebuild
+  - containers
+  - builds
+
+.container_job_template: &container_job_definition
+  image: docker:stable
+  stage: containers
+  services:
+    - docker:dind
+  before_script:
+    - export TAG="$CI_REGISTRY_IMAGE/ci-$NAME:latest"
+    - export COMMON_TAG="$CI_REGISTRY/libvirt/libvirt-dbus/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/libvirt-$NAME.Dockerfile" ci
+    - docker push "$TAG"
+  after_script:
+    - docker logout
+
+.script_variables: &script_variables |
+  export MAKEFLAGS="-j$(getconf _NPROCESSORS_ONLN)"
+  export SCRATCH_DIR="/tmp/scratch"
+  export VROOT="$SCRATCH_DIR/vroot"
+  export CCACHE_DIR="$PWD/ccache"
+  export CCACHE_MAXSIZE="500M"
+  export PATH="$CCACHE_WRAPPERSDIR:$VROOT/bin:$PATH"
+  export PKG_CONFIG_PATH="$VROOT/lib/pkgconfig"
+  export XDG_DATA_DIRS="$VROOT/share:/usr/share"
+  export GI_TYPELIB_PATH="$VROOT/lib/girepository-1.0"
+  export LD_LIBRARY_PATH="$VROOT/lib"
+
+.git_native_build_job_template: &git_native_build_job_definition
+  image: $CI_REGISTRY_IMAGE/ci-$NAME:latest
+  stage: builds
+  cache:
+    paths:
+      - ccache/
+    key: "$CI_JOB_NAME"
+  before_script:
+    - *script_variables
+  script:
+    - pushd "$PWD"
+    - mkdir -p "$SCRATCH_DIR"
+    - cd "$SCRATCH_DIR"
+    - git clone --depth 1 https://gitlab.com/libvirt/libvirt.git
+    - git clone --depth 1 https://gitlab.com/libvirt/libvirt-glib.git
+    - mkdir libvirt/build
+    - cd libvirt/build
+    - ../autogen.sh --prefix="$VROOT" --without-libvirtd
+    - $MAKE install
+    - cd ../..
+    - mkdir libvirt-glib/build
+    - cd libvirt-glib/build
+    - ../autogen.sh --prefix="$VROOT"
+    - $MAKE install
+    - popd
+    - meson build --prefix="$VROOT"
+    - $NINJA -C build
+    - if test "$TESTS" != "skip";
+      then
+        $NINJA -C build test;
+        $NINJA -C build install;
+        $NINJA -C build dist;
+      fi
+    - if test -x /usr/bin/rpmbuild && test "$RPM" != "skip";
+      then
+        rpmbuild --nodeps -ta build/meson-dist/libvirt-dbus*.tar.xz;
+      fi
+
+.dist_native_build_job_template: &dist_native_build_job_definition
+  image: $CI_REGISTRY_IMAGE/ci-$NAME:latest
+  stage: builds
+  cache:
+    paths:
+      - ccache/
+    key: "$CI_JOB_NAME"
+  before_script:
+    - *script_variables
+  script:
+    - meson build --prefix="$VROOT"
+    - $NINJA -C build
+    - if test "$TESTS" != "skip";
+      then
+        $NINJA -C build test;
+        $NINJA -C build install;
+        $NINJA -C build dist;
+      fi
+    - if test -x /usr/bin/rpmbuild && test "$RPM" != "skip";
+      then
+        rpmbuild --nodeps -ta build/meson-dist/libvirt-dbus*.tar.xz;
+      fi
+
 
 # Check that all commits are signed-off for the DCO.
 # Skip on "libvirt" namespace, since we only need to run
@@ -14,3 +107,128 @@ check-dco:
   except:
     variables:
       - $CI_PROJECT_NAMESPACE == 'libvirt'
+
+x64-centos-7-container:
+  <<: *container_job_definition
+  variables:
+    NAME: centos-7
+
+x64-centos-8-container:
+  <<: *container_job_definition
+  variables:
+    NAME: centos-8
+
+x64-centos-stream-container:
+  <<: *container_job_definition
+  variables:
+    NAME: centos-stream
+
+x64-debian-9-container:
+  <<: *container_job_definition
+  variables:
+    NAME: debian-9
+
+x64-debian-10-container:
+  <<: *container_job_definition
+  variables:
+    NAME: debian-10
+
+x64-debian-sid-container:
+  <<: *container_job_definition
+  variables:
+    NAME: debian-sid
+
+x64-fedora-31-container:
+  <<: *container_job_definition
+  variables:
+    NAME: fedora-31
+
+x64-fedora-32-container:
+  <<: *container_job_definition
+  variables:
+    NAME: fedora-32
+
+x64-fedora-rawhide-container:
+  <<: *container_job_definition
+  variables:
+    NAME: fedora-rawhide
+
+x64-opensuse-151-container:
+  <<: *container_job_definition
+  variables:
+    NAME: opensuse-151
+
+x64-ubuntu-1804-container:
+  <<: *container_job_definition
+  variables:
+    NAME: ubuntu-1804
+
+x64-ubuntu-2004-container:
+  <<: *container_job_definition
+  variables:
+    NAME: ubuntu-2004
+
+
+
+x64-centos-7-dist-build:
+  <<: *dist_native_build_job_definition
+  variables:
+    NAME: centos-7
+    TESTS: skip
+    RPM: skip
+
+x64-centos-8-git-build:
+  <<: *git_native_build_job_definition
+  variables:
+    NAME: centos-8
+
+x64-centos-stream-git-build:
+  <<: *git_native_build_job_definition
+  variables:
+    NAME: centos-stream
+
+x64-debian-9-dist-build:
+  <<: *dist_native_build_job_definition
+  variables:
+    NAME: debian-9
+
+x64-debian-10-dist-build:
+  <<: *dist_native_build_job_definition
+  variables:
+    NAME: debian-10
+
+x64-debian-sid-dist-build:
+  <<: *dist_native_build_job_definition
+  variables:
+    NAME: debian-sid
+
+x64-fedora-31-dist-build:
+  <<: *dist_native_build_job_definition
+  variables:
+    NAME: fedora-31
+
+x64-fedora-32-dist-build:
+  <<: *dist_native_build_job_definition
+  variables:
+    NAME: fedora-32
+
+x64-fedora-rawhide-dist-build:
+  <<: *dist_native_build_job_definition
+  variables:
+    NAME: fedora-rawhide
+
+x64-opensuse-151-dist-build:
+  <<: *dist_native_build_job_definition
+  variables:
+    NAME: opensuse-151
+    RPM: skip
+
+x64-ubuntu-1804-dist-build:
+  <<: *dist_native_build_job_definition
+  variables:
+    NAME: ubuntu-1804
+
+x64-ubuntu-2004-dist-build:
+  <<: *dist_native_build_job_definition
+  variables:
+    NAME: ubuntu-2004
diff --git a/ci/containers/README.rst b/ci/containers/README.rst
new file mode 100644
index 0000000..530897e
--- /dev/null
+++ b/ci/containers/README.rst
@@ -0,0 +1,14 @@
+CI job assets
+=============
+
+This directory contains assets used in the automated CI jobs, most
+notably the Dockerfiles used to build container images in which the
+CI jobs then run.
+
+The ``refresh`` script is used to re-create the Dockerfiles using the
+``lcitool`` command that is provided by repo
+https://gitlab.com/libvirt/libvirt-ci
+
+The containers are built during the CI process and cached in the GitLab
+container registry of the project doing the build. The cached containers
+can be deleted at any time and will be correctly rebuilt.
diff --git a/ci/containers/libvirt-centos-7.Dockerfile b/ci/containers/libvirt-centos-7.Dockerfile
new file mode 100644
index 0000000..beb1d08
--- /dev/null
+++ b/ci/containers/libvirt-centos-7.Dockerfile
@@ -0,0 +1,90 @@
+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 \
+        dbus \
+        gcc \
+        gdb \
+        gettext \
+        gettext-devel \
+        git \
+        glib2-devel \
+        glibc-common \
+        glibc-devel \
+        libtool \
+        libvirt-devel \
+        libvirt-gobject-devel \
+        lsof \
+        make \
+        net-tools \
+        ninja-build \
+        patch \
+        perl \
+        pkgconfig \
+        python3 \
+        python3-pip \
+        python3-setuptools \
+        python3-wheel \
+        python36-dbus \
+        python36-docutils \
+        python36-gobject \
+        python36-pytest \
+        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/containers/libvirt-centos-8.Dockerfile b/ci/containers/libvirt-centos-8.Dockerfile
new file mode 100644
index 0000000..43c4093
--- /dev/null
+++ b/ci/containers/libvirt-centos-8.Dockerfile
@@ -0,0 +1,68 @@
+FROM centos:8
+
+RUN dnf install 'dnf-command(config-manager)' -y && \
+    dnf config-manager --set-enabled -y PowerTools && \
+    dnf install -y epel-release && \
+    dnf update -y && \
+    dnf install -y \
+        autoconf \
+        automake \
+        bash \
+        bash-completion \
+        ca-certificates \
+        ccache \
+        chrony \
+        dbus \
+        gcc \
+        gdb \
+        gettext \
+        gettext-devel \
+        git \
+        glib2-devel \
+        glibc-devel \
+        glibc-langpack-en \
+        gnutls-devel \
+        gobject-introspection-devel \
+        gtk-doc \
+        libnl3-devel \
+        libtirpc-devel \
+        libtool \
+        libxml2 \
+        libxml2-devel \
+        libxslt \
+        lsof \
+        make \
+        meson \
+        net-tools \
+        ninja-build \
+        patch \
+        perl \
+        pkgconfig \
+        python3 \
+        python3-dbus \
+        python3-docutils \
+        python3-flake8 \
+        python3-gobject \
+        python3-pytest \
+        python3-setuptools \
+        python3-wheel \
+        rpcgen \
+        rpm-build \
+        screen \
+        strace \
+        sudo \
+        vala \
+        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/containers/libvirt-centos-stream.Dockerfile b/ci/containers/libvirt-centos-stream.Dockerfile
new file mode 100644
index 0000000..ff487f3
--- /dev/null
+++ b/ci/containers/libvirt-centos-stream.Dockerfile
@@ -0,0 +1,69 @@
+FROM centos:8
+
+RUN dnf install -y centos-release-stream && \
+    dnf install 'dnf-command(config-manager)' -y && \
+    dnf config-manager --set-enabled -y Stream-PowerTools && \
+    dnf install -y epel-release && \
+    dnf update -y && \
+    dnf install -y \
+        autoconf \
+        automake \
+        bash \
+        bash-completion \
+        ca-certificates \
+        ccache \
+        chrony \
+        dbus \
+        gcc \
+        gdb \
+        gettext \
+        gettext-devel \
+        git \
+        glib2-devel \
+        glibc-devel \
+        glibc-langpack-en \
+        gnutls-devel \
+        gobject-introspection-devel \
+        gtk-doc \
+        libnl3-devel \
+        libtirpc-devel \
+        libtool \
+        libxml2 \
+        libxml2-devel \
+        libxslt \
+        lsof \
+        make \
+        meson \
+        net-tools \
+        ninja-build \
+        patch \
+        perl \
+        pkgconfig \
+        python3 \
+        python3-dbus \
+        python3-docutils \
+        python3-flake8 \
+        python3-gobject \
+        python3-pytest \
+        python3-setuptools \
+        python3-wheel \
+        rpcgen \
+        rpm-build \
+        screen \
+        strace \
+        sudo \
+        vala \
+        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/containers/libvirt-debian-10.Dockerfile b/ci/containers/libvirt-debian-10.Dockerfile
new file mode 100644
index 0000000..b3a5879
--- /dev/null
+++ b/ci/containers/libvirt-debian-10.Dockerfile
@@ -0,0 +1,61 @@
+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 \
+            dbus \
+            flake8 \
+            gcc \
+            gdb \
+            gettext \
+            git \
+            libc6-dev \
+            libglib2.0-dev \
+            libtool \
+            libtool-bin \
+            libvirt-dev \
+            libvirt-glib-1.0-dev \
+            locales \
+            lsof \
+            make \
+            meson \
+            net-tools \
+            ninja-build \
+            patch \
+            perl \
+            pkgconf \
+            python3 \
+            python3-dbus \
+            python3-docutils \
+            python3-gi \
+            python3-pytest \
+            python3-setuptools \
+            python3-wheel \
+            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/containers/libvirt-debian-9.Dockerfile b/ci/containers/libvirt-debian-9.Dockerfile
new file mode 100644
index 0000000..fab5187
--- /dev/null
+++ b/ci/containers/libvirt-debian-9.Dockerfile
@@ -0,0 +1,64 @@
+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 \
+            dbus \
+            flake8 \
+            gcc \
+            gdb \
+            gettext \
+            git \
+            libc6-dev \
+            libglib2.0-dev \
+            libtool \
+            libtool-bin \
+            libvirt-dev libvirt-daemon \
+            libvirt-glib-1.0-dev \
+            locales \
+            lsof \
+            make \
+            net-tools \
+            ninja-build \
+            patch \
+            perl \
+            pkgconf \
+            python3 \
+            python3-dbus \
+            python3-docutils \
+            python3-gi \
+            python3-pip \
+            python3-pytest \
+            python3-setuptools \
+            python3-wheel \
+            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/containers/libvirt-debian-sid.Dockerfile b/ci/containers/libvirt-debian-sid.Dockerfile
new file mode 100644
index 0000000..20ab50b
--- /dev/null
+++ b/ci/containers/libvirt-debian-sid.Dockerfile
@@ -0,0 +1,61 @@
+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 \
+            dbus \
+            flake8 \
+            gcc \
+            gdb \
+            gettext \
+            git \
+            libc6-dev \
+            libglib2.0-dev \
+            libtool \
+            libtool-bin \
+            libvirt-dev \
+            libvirt-glib-1.0-dev \
+            locales \
+            lsof \
+            make \
+            meson \
+            net-tools \
+            ninja-build \
+            patch \
+            perl \
+            pkgconf \
+            python3 \
+            python3-dbus \
+            python3-docutils \
+            python3-gi \
+            python3-pytest \
+            python3-setuptools \
+            python3-wheel \
+            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/containers/libvirt-fedora-31.Dockerfile b/ci/containers/libvirt-fedora-31.Dockerfile
new file mode 100644
index 0000000..84c290c
--- /dev/null
+++ b/ci/containers/libvirt-fedora-31.Dockerfile
@@ -0,0 +1,58 @@
+FROM fedora:31
+
+RUN dnf update -y && \
+    dnf install -y \
+        autoconf \
+        automake \
+        bash \
+        bash-completion \
+        ca-certificates \
+        ccache \
+        chrony \
+        cppi \
+        dbus-daemon \
+        gcc \
+        gdb \
+        gettext \
+        gettext-devel \
+        git \
+        glib2-devel \
+        glibc-devel \
+        glibc-langpack-en \
+        libtool \
+        libvirt-devel \
+        libvirt-gobject-devel \
+        lsof \
+        make \
+        meson \
+        net-tools \
+        ninja-build \
+        patch \
+        perl \
+        pkgconfig \
+        python3 \
+        python3-dbus \
+        python3-docutils \
+        python3-flake8 \
+        python3-gobject \
+        python3-pytest \
+        python3-setuptools \
+        python3-wheel \
+        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/containers/libvirt-fedora-32.Dockerfile b/ci/containers/libvirt-fedora-32.Dockerfile
new file mode 100644
index 0000000..d4a656d
--- /dev/null
+++ b/ci/containers/libvirt-fedora-32.Dockerfile
@@ -0,0 +1,58 @@
+FROM fedora:32
+
+RUN dnf update -y && \
+    dnf install -y \
+        autoconf \
+        automake \
+        bash \
+        bash-completion \
+        ca-certificates \
+        ccache \
+        chrony \
+        cppi \
+        dbus-daemon \
+        gcc \
+        gdb \
+        gettext \
+        gettext-devel \
+        git \
+        glib2-devel \
+        glibc-devel \
+        glibc-langpack-en \
+        libtool \
+        libvirt-devel \
+        libvirt-gobject-devel \
+        lsof \
+        make \
+        meson \
+        net-tools \
+        ninja-build \
+        patch \
+        perl \
+        pkgconfig \
+        python3 \
+        python3-dbus \
+        python3-docutils \
+        python3-flake8 \
+        python3-gobject \
+        python3-pytest \
+        python3-setuptools \
+        python3-wheel \
+        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/containers/libvirt-fedora-rawhide.Dockerfile b/ci/containers/libvirt-fedora-rawhide.Dockerfile
new file mode 100644
index 0000000..2b7b712
--- /dev/null
+++ b/ci/containers/libvirt-fedora-rawhide.Dockerfile
@@ -0,0 +1,59 @@
+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 \
+        dbus-daemon \
+        gcc \
+        gdb \
+        gettext \
+        gettext-devel \
+        git \
+        glib2-devel \
+        glibc-devel \
+        glibc-langpack-en \
+        libtool \
+        libvirt-devel \
+        libvirt-gobject-devel \
+        lsof \
+        make \
+        meson \
+        net-tools \
+        ninja-build \
+        patch \
+        perl \
+        pkgconfig \
+        python3 \
+        python3-dbus \
+        python3-docutils \
+        python3-flake8 \
+        python3-gobject \
+        python3-pytest \
+        python3-setuptools \
+        python3-wheel \
+        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/containers/libvirt-opensuse-151.Dockerfile b/ci/containers/libvirt-opensuse-151.Dockerfile
new file mode 100644
index 0000000..f8cc366
--- /dev/null
+++ b/ci/containers/libvirt-opensuse-151.Dockerfile
@@ -0,0 +1,60 @@
+FROM opensuse/leap:15.1
+
+RUN zypper update -y && \
+    zypper install -y \
+           autoconf \
+           automake \
+           bash \
+           bash-completion \
+           ca-certificates \
+           ccache \
+           chrony \
+           cppi \
+           dbus-1 \
+           gcc \
+           gdb \
+           gettext \
+           gettext-devel \
+           git \
+           glib2-devel \
+           glibc-devel \
+           glibc-locale \
+           libtool \
+           libvirt-devel \
+           libvirt-glib-devel \
+           lsof \
+           make \
+           net-tools \
+           ninja \
+           patch \
+           perl \
+           pkgconfig \
+           python3 \
+           python3-dbus-python \
+           python3-docutils \
+           python3-flake8 \
+           python3-gobject \
+           python3-pip \
+           python3-pytest \
+           python3-setuptools \
+           python3-wheel \
+           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/containers/libvirt-ubuntu-1804.Dockerfile b/ci/containers/libvirt-ubuntu-1804.Dockerfile
new file mode 100644
index 0000000..c0e2f6d
--- /dev/null
+++ b/ci/containers/libvirt-ubuntu-1804.Dockerfile
@@ -0,0 +1,64 @@
+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 \
+            dbus \
+            flake8 \
+            gcc \
+            gdb \
+            gettext \
+            git \
+            libc6-dev \
+            libglib2.0-dev \
+            libtool \
+            libtool-bin \
+            libvirt-dev libvirt-daemon \
+            libvirt-glib-1.0-dev \
+            locales \
+            lsof \
+            make \
+            net-tools \
+            ninja-build \
+            patch \
+            perl \
+            pkgconf \
+            python3 \
+            python3-dbus \
+            python3-docutils \
+            python3-gi \
+            python3-pip \
+            python3-pytest \
+            python3-setuptools \
+            python3-wheel \
+            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/containers/libvirt-ubuntu-2004.Dockerfile b/ci/containers/libvirt-ubuntu-2004.Dockerfile
new file mode 100644
index 0000000..86bd044
--- /dev/null
+++ b/ci/containers/libvirt-ubuntu-2004.Dockerfile
@@ -0,0 +1,61 @@
+FROM ubuntu:20.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 \
+            dbus \
+            flake8 \
+            gcc \
+            gdb \
+            gettext \
+            git \
+            libc6-dev \
+            libglib2.0-dev \
+            libtool \
+            libtool-bin \
+            libvirt-dev \
+            libvirt-glib-1.0-dev \
+            locales \
+            lsof \
+            make \
+            meson \
+            net-tools \
+            ninja-build \
+            patch \
+            perl \
+            pkgconf \
+            python3 \
+            python3-dbus \
+            python3-docutils \
+            python3-gi \
+            python3-pytest \
+            python3-setuptools \
+            python3-wheel \
+            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/containers/refresh b/ci/containers/refresh
new file mode 100755
index 0000000..bf62d51
--- /dev/null
+++ b/ci/containers/refresh
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+if test -z "$1"
+then
+    echo "syntax: $0 PATH-TO-LCITOOL"
+    exit 1
+fi
+
+LCITOOL=$1
+
+if ! test -x "$LCITOOL"
+then
+    echo "$LCITOOL is not executable"
+    exit 1
+fi
+
+HOSTS=$($LCITOOL hosts | grep -v freebsd)
+
+for host in $HOSTS
+do
+    if test "$host" = "libvirt-centos-8" || test "$host" = "libvirt-centos-stream"
+    then
+        $LCITOOL dockerfile $host libvirt+minimal,libvirt-glib,libvirt-dbus > $host.Dockerfile
+    else
+        $LCITOOL dockerfile $host libvirt+dist,libvirt-glib+dist,libvirt-dbus > $host.Dockerfile
+    fi
+
+    if test "$host" = "libvirt-debian-9" || test "$host" = "libvirt-ubuntu-1804"
+    then
+	sed -i -e 's/libvirt-dev/libvirt-dev libvirt-daemon/' $host.Dockerfile
+    fi
+done
-- 
2.26.2




More information about the libvir-list mailing list