[PATCH 1/2] gitlab: introduce CI jobs for building content

Daniel P. Berrangé berrange at redhat.com
Fri May 15 16:37:16 UTC 2020


The docs build needs to validate one axis

 - A variety of publican versions

We get coverage for this by running builds across various distros.
The Ubuntu 20.04 build is picked as the special one, from which we
publish the generated HTML docs, which then become browsable via
the GitLab Pages service.

Signed-off-by: Daniel P. Berrangé <berrange at redhat.com>
---
 .gitlab-ci.yml                       | 126 +++++++++++++++++++++++++++
 Makefile                             |   7 +-
 ci/libvirt-centos-7.Dockerfile       |  83 ++++++++++++++++++
 ci/libvirt-debian-10.Dockerfile      |  53 +++++++++++
 ci/libvirt-debian-9.Dockerfile       |  56 ++++++++++++
 ci/libvirt-debian-sid.Dockerfile     |  53 +++++++++++
 ci/libvirt-fedora-31.Dockerfile      |  50 +++++++++++
 ci/libvirt-fedora-32.Dockerfile      |  50 +++++++++++
 ci/libvirt-fedora-rawhide.Dockerfile |  51 +++++++++++
 ci/libvirt-ubuntu-1804.Dockerfile    |  56 ++++++++++++
 ci/libvirt-ubuntu-2004.Dockerfile    |  53 +++++++++++
 ci/refresh                           |  22 +++++
 12 files changed, 657 insertions(+), 3 deletions(-)
 create mode 100644 ci/libvirt-centos-7.Dockerfile
 create mode 100644 ci/libvirt-debian-10.Dockerfile
 create mode 100644 ci/libvirt-debian-9.Dockerfile
 create mode 100644 ci/libvirt-debian-sid.Dockerfile
 create mode 100644 ci/libvirt-fedora-31.Dockerfile
 create mode 100644 ci/libvirt-fedora-32.Dockerfile
 create mode 100644 ci/libvirt-fedora-rawhide.Dockerfile
 create mode 100644 ci/libvirt-ubuntu-1804.Dockerfile
 create mode 100644 ci/libvirt-ubuntu-2004.Dockerfile
 create mode 100755 ci/refresh

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 50dae92..450d844 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,6 +1,35 @@
 
 stages:
   - prebuild
+  - containers
+  - docs
+
+.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-appdev-guide-python/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/libvirt-$NAME.Dockerfile" ci
+    - docker push "$TAG"
+  after_script:
+    - docker logout
+
+.docs_job_template: &docs_job_definition
+  image: $CI_REGISTRY_IMAGE/ci-$NAME:latest
+  stage: docs
+  before_script:
+    - export MAKEFLAGS="-j$(getconf _NPROCESSORS_ONLN)"
+  script:
+    - git clone --depth 1 https://gitlab.com/libvirt/libvirt-publican.git brand
+    - $MAKE branddir=$PWD/brand
+    - mv tmp/en-US/html public
 
 # Check that all commits are signed-off for the DCO.
 # Skip on "libvirt" namespace, since we only need to run
@@ -14,3 +43,100 @@ check-dco:
   except:
     variables:
       - $CI_PROJECT_NAMESPACE == 'libvirt'
+
+centos-7-container:
+  <<: *container_job_definition
+  variables:
+    NAME: centos-7
+
+debian-9-container:
+  <<: *container_job_definition
+  variables:
+    NAME: debian-9
+
+debian-10-container:
+  <<: *container_job_definition
+  variables:
+    NAME: debian-10
+
+debian-sid-container:
+  <<: *container_job_definition
+  variables:
+    NAME: debian-sid
+
+fedora-31-container:
+  <<: *container_job_definition
+  variables:
+    NAME: fedora-31
+
+fedora-32-container:
+  <<: *container_job_definition
+  variables:
+    NAME: fedora-32
+
+fedora-rawhide-container:
+  <<: *container_job_definition
+  variables:
+    NAME: fedora-rawhide
+
+ubuntu-1804-container:
+  <<: *container_job_definition
+  variables:
+    NAME: ubuntu-1804
+
+ubuntu-2004-container:
+  <<: *container_job_definition
+  variables:
+    NAME: ubuntu-2004
+
+
+
+centos-7-docs:
+  <<: *docs_job_definition
+  variables:
+    NAME: centos-7
+
+debian-9-docs:
+  <<: *docs_job_definition
+  variables:
+    NAME: debian-9
+
+debian-10-docs:
+  <<: *docs_job_definition
+  variables:
+    NAME: debian-10
+
+debian-sid-docs:
+  <<: *docs_job_definition
+  variables:
+    NAME: debian-sid
+
+fedora-31-docs:
+  <<: *docs_job_definition
+  variables:
+    NAME: fedora-31
+
+fedora-32-docs:
+  <<: *docs_job_definition
+  variables:
+    NAME: fedora-32
+
+fedora-rawhide-docs:
+  <<: *docs_job_definition
+  variables:
+    NAME: fedora-rawhide
+
+ubuntu-1804-docs:
+  <<: *docs_job_definition
+  variables:
+    NAME: ubuntu-1804
+
+# ubuntu-2004-docs is special as it is the one
+# we publish from
+pages:
+  <<: *docs_job_definition
+  variables:
+    NAME: ubuntu-2004
+  artifacts:
+    paths:
+      - public
diff --git a/Makefile b/Makefile
index 85935a1..237961a 100644
--- a/Makefile
+++ b/Makefile
@@ -3,17 +3,18 @@ prefix=/usr
 datadir=$(prefix)/share
 pkgdatadir=$(datadir)/publican
 contentdir=$(pkgdatadir)/Common_Content
+branddir=$(contentdir)
 
 all: html pdf
 
 html:
-	publican build --langs=en-US --formats=html --common_content=$(contentdir)
+	publican build --langs=en-US --formats=html --common_content=$(contentdir) --brand_dir=$(branddir)
 
 pdf:
-	publican build --langs=en-US --formats=pdf --common_content=$(contentdir)
+	publican build --langs=en-US --formats=pdf --common_content=$(contentdir) --brand_dir=$(branddir)
 
 rpm:
-	publican package --lang=en-US --binary --desktop --common_content=$(contentdir)
+	publican package --lang=en-US --binary --desktop --common_content=$(contentdir) --brand_dir=$(branddir)
 
 clean:
 	publican clean --common_content=$(contentdir)
diff --git a/ci/libvirt-centos-7.Dockerfile b/ci/libvirt-centos-7.Dockerfile
new file mode 100644
index 0000000..feb3621
--- /dev/null
+++ b/ci/libvirt-centos-7.Dockerfile
@@ -0,0 +1,83 @@
+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 \
+        lsof \
+        make \
+        net-tools \
+        ninja-build \
+        patch \
+        perl \
+        pkgconfig \
+        publican \
+        python3 \
+        python3-pip \
+        python3-setuptools \
+        python3-wheel \
+        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-debian-10.Dockerfile b/ci/libvirt-debian-10.Dockerfile
new file mode 100644
index 0000000..1f3c08d
--- /dev/null
+++ b/ci/libvirt-debian-10.Dockerfile
@@ -0,0 +1,53 @@
+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 \
+            locales \
+            lsof \
+            make \
+            meson \
+            net-tools \
+            ninja-build \
+            patch \
+            perl \
+            pkgconf \
+            publican \
+            python3 \
+            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/libvirt-debian-9.Dockerfile b/ci/libvirt-debian-9.Dockerfile
new file mode 100644
index 0000000..93c7bad
--- /dev/null
+++ b/ci/libvirt-debian-9.Dockerfile
@@ -0,0 +1,56 @@
+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 \
+            locales \
+            lsof \
+            make \
+            net-tools \
+            ninja-build \
+            patch \
+            perl \
+            pkgconf \
+            publican \
+            python3 \
+            python3-pip \
+            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/libvirt-debian-sid.Dockerfile b/ci/libvirt-debian-sid.Dockerfile
new file mode 100644
index 0000000..434fcae
--- /dev/null
+++ b/ci/libvirt-debian-sid.Dockerfile
@@ -0,0 +1,53 @@
+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 \
+            locales \
+            lsof \
+            make \
+            meson \
+            net-tools \
+            ninja-build \
+            patch \
+            perl \
+            pkgconf \
+            publican \
+            python3 \
+            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/libvirt-fedora-31.Dockerfile b/ci/libvirt-fedora-31.Dockerfile
new file mode 100644
index 0000000..523da29
--- /dev/null
+++ b/ci/libvirt-fedora-31.Dockerfile
@@ -0,0 +1,50 @@
+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 \
+        lsof \
+        make \
+        meson \
+        net-tools \
+        ninja-build \
+        patch \
+        perl \
+        pkgconfig \
+        publican \
+        python3 \
+        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/libvirt-fedora-32.Dockerfile b/ci/libvirt-fedora-32.Dockerfile
new file mode 100644
index 0000000..8539d7d
--- /dev/null
+++ b/ci/libvirt-fedora-32.Dockerfile
@@ -0,0 +1,50 @@
+FROM fedora:32
+
+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 \
+        lsof \
+        make \
+        meson \
+        net-tools \
+        ninja-build \
+        patch \
+        perl \
+        pkgconfig \
+        publican \
+        python3 \
+        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/libvirt-fedora-rawhide.Dockerfile b/ci/libvirt-fedora-rawhide.Dockerfile
new file mode 100644
index 0000000..765b71c
--- /dev/null
+++ b/ci/libvirt-fedora-rawhide.Dockerfile
@@ -0,0 +1,51 @@
+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 \
+        lsof \
+        make \
+        meson \
+        net-tools \
+        ninja-build \
+        patch \
+        perl \
+        pkgconfig \
+        publican \
+        python3 \
+        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/libvirt-ubuntu-1804.Dockerfile b/ci/libvirt-ubuntu-1804.Dockerfile
new file mode 100644
index 0000000..e4f1120
--- /dev/null
+++ b/ci/libvirt-ubuntu-1804.Dockerfile
@@ -0,0 +1,56 @@
+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 \
+            locales \
+            lsof \
+            make \
+            net-tools \
+            ninja-build \
+            patch \
+            perl \
+            pkgconf \
+            publican \
+            python3 \
+            python3-pip \
+            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/libvirt-ubuntu-2004.Dockerfile b/ci/libvirt-ubuntu-2004.Dockerfile
new file mode 100644
index 0000000..4f4619f
--- /dev/null
+++ b/ci/libvirt-ubuntu-2004.Dockerfile
@@ -0,0 +1,53 @@
+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 \
+            gcc \
+            gdb \
+            gettext \
+            git \
+            libc6-dev \
+            libtool \
+            libtool-bin \
+            locales \
+            lsof \
+            make \
+            meson \
+            net-tools \
+            ninja-build \
+            patch \
+            perl \
+            pkgconf \
+            publican \
+            python3 \
+            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/refresh b/ci/refresh
new file mode 100755
index 0000000..850ee5f
--- /dev/null
+++ b/ci/refresh
@@ -0,0 +1,22 @@
+#!/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 -E '(freebsd|centos-8|opensuse)')
+
+for host in $HOSTS
+do
+    $LCITOOL dockerfile $host libvirt-appdev-guide-python > $host.Dockerfile
+done
-- 
2.26.2




More information about the libvir-list mailing list