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(a)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