gitlab: introduce CI jobs for building on multiple distros

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
Daniel P. Berrangé 2020-04-23 13:31:48 +01:00
parent 88d19fb210
commit 27ea968c70
13 changed files with 1005 additions and 3 deletions

View File

@ -1,6 +1,61 @@
stages:
- containers
- 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/virt-viewer/virt-viewer/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/$NAME.Dockerfile" ci
- docker push "$TAG"
after_script:
- docker logout
.git_build_job_template: &git_build_job_definition
image: $CI_REGISTRY_IMAGE/ci-$NAME:latest
stage: builds
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="$VROOT/bin:$PATH"
- export PKG_CONFIG_PATH="$VROOT/lib/pkgconfig"
- export TEST_MAINTAINER=1
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
- git clone --depth 1 https://gitlab.gnome.org/GNOME/gtk-vnc.git
- cd libvirt
- mkdir build
- cd build
- ../autogen.sh --prefix="$VROOT" --libdir="$VROOT/lib" --without-libvirtd
- $MAKE install
- cd ../../libvirt-glib
- mkdir build
- cd build
- ../autogen.sh --prefix="$VROOT" --libdir="$VROOT/lib"
- $MAKE install
- cd ../../gtk-vnc
- git submodule update --init
- meson build --prefix="$VROOT" --libdir="$VROOT/lib"
- $NINJA -C build install
- popd
- ./autogen.sh --prefix="$VROOT"
- $MAKE
- $MAKE install
# Check that all commits are signed-off for the DCO.
# Skip on "virt-viewer" namespace, since we only need to run
@ -15,7 +70,113 @@ check-dco:
variables:
- $CI_PROJECT_NAMESPACE == 'virt-viewer'
ctr-check-dco:
centos-7-container:
<<: *container_job_definition
variables:
NAME: check-dco
NAME: centos-7
centos-8-container:
<<: *container_job_definition
variables:
NAME: centos-8
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
opensuse-151-container:
<<: *container_job_definition
variables:
NAME: opensuse-151
ubuntu-1804-container:
<<: *container_job_definition
variables:
NAME: ubuntu-1804
ubuntu-2004-container:
<<: *container_job_definition
variables:
NAME: ubuntu-2004
centos-7-git-build:
<<: *git_build_job_definition
variables:
NAME: centos-7
centos-8-git-build:
<<: *git_build_job_definition
variables:
NAME: centos-8
debian-9-git-build:
<<: *git_build_job_definition
variables:
NAME: debian-9
debian-10-git-build:
<<: *git_build_job_definition
variables:
NAME: debian-10
debian-sid-git-build:
<<: *git_build_job_definition
variables:
NAME: debian-sid
fedora-31-git-build:
<<: *git_build_job_definition
variables:
NAME: fedora-31
fedora-32-git-build:
<<: *git_build_job_definition
variables:
NAME: fedora-32
fedora-rawhide-git-build:
<<: *git_build_job_definition
variables:
NAME: fedora-rawhide
opensuse-151-git-build:
<<: *git_build_job_definition
variables:
NAME: opensuse-151
ubuntu-1804-git-build:
<<: *git_build_job_definition
variables:
NAME: ubuntu-1804
ubuntu-2004-git-build:
<<: *git_build_job_definition
variables:
NAME: ubuntu-2004

101
ci/centos-7.Dockerfile Normal file
View File

@ -0,0 +1,101 @@
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 \
cyrus-sasl-devel \
gcc \
gdb \
gdk-pixbuf2-devel \
gettext \
gettext-devel \
git \
glib2-devel \
glibc-common \
glibc-devel \
gnutls-devel \
gobject-introspection-devel \
gtk-doc \
gtk3-devel \
intltool \
libgcrypt-devel \
libgovirt-devel \
libnl3-devel \
libtirpc-devel \
libtool \
libxml2 \
libxml2-devel \
libxslt \
lsof \
make \
net-tools \
ninja-build \
patch \
perl \
pkgconfig \
pulseaudio-libs-devel \
python3 \
python3-pip \
python3-setuptools \
python3-wheel \
python36-docutils \
rpm-build \
screen \
spice-gtk3-devel \
strace \
sudo \
vala \
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"

70
ci/centos-8.Dockerfile Normal file
View File

@ -0,0 +1,70 @@
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 \
cyrus-sasl-devel \
gcc \
gdb \
gdk-pixbuf2-devel \
gettext \
gettext-devel \
git \
glib2-devel \
glibc-devel \
glibc-langpack-en \
gnutls-devel \
gobject-introspection-devel \
gtk-doc \
gtk3-devel \
intltool \
libgcrypt-devel \
libnl3-devel \
libtirpc-devel \
libtool \
libxml2 \
libxml2-devel \
libxslt \
lsof \
make \
meson \
net-tools \
ninja-build \
patch \
perl \
pkgconfig \
pulseaudio-libs-devel \
python3 \
python3-docutils \
python3-setuptools \
python3-wheel \
rpcgen \
rpm-build \
screen \
spice-gtk3-devel \
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"

73
ci/debian-10.Dockerfile Normal file
View File

@ -0,0 +1,73 @@
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 \
gtk-doc-tools \
intltool \
libc-dev-bin \
libc6-dev \
libgcrypt20-dev \
libgdk-pixbuf2.0-dev \
libgirepository1.0-dev \
libglib2.0-dev \
libgnutls28-dev \
libgovirt-dev \
libgtk-3-dev \
libnl-3-dev \
libnl-route-3-dev \
libpulse-dev \
libsasl2-dev \
libspice-client-gtk-3.0-dev \
libtirpc-dev \
libtool \
libtool-bin \
libxml2-dev \
libxml2-utils \
locales \
lsof \
make \
meson \
net-tools \
ninja-build \
patch \
perl \
pkgconf \
python3 \
python3-docutils \
python3-setuptools \
python3-wheel \
screen \
strace \
sudo \
valac \
vim \
xsltproc && \
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"

76
ci/debian-9.Dockerfile Normal file
View File

@ -0,0 +1,76 @@
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 \
gtk-doc-tools \
intltool \
libc-dev-bin \
libc6-dev \
libgcrypt20-dev \
libgdk-pixbuf2.0-dev \
libgirepository1.0-dev \
libglib2.0-dev \
libgnutls28-dev \
libgovirt-dev \
libgtk-3-dev \
libnl-3-dev \
libnl-route-3-dev \
libpulse-dev \
libsasl2-dev \
libspice-client-gtk-3.0-dev \
libtirpc-dev \
libtool \
libtool-bin \
libxml2-dev \
libxml2-utils \
locales \
lsof \
make \
net-tools \
ninja-build \
patch \
perl \
pkgconf \
python3 \
python3-docutils \
python3-pip \
python3-setuptools \
python3-wheel \
screen \
strace \
sudo \
valac \
vim \
xsltproc && \
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"

73
ci/debian-sid.Dockerfile Normal file
View File

@ -0,0 +1,73 @@
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 \
gtk-doc-tools \
intltool \
libc-dev-bin \
libc6-dev \
libgcrypt20-dev \
libgdk-pixbuf2.0-dev \
libgirepository1.0-dev \
libglib2.0-dev \
libgnutls28-dev \
libgovirt-dev \
libgtk-3-dev \
libnl-3-dev \
libnl-route-3-dev \
libpulse-dev \
libsasl2-dev \
libspice-client-gtk-3.0-dev \
libtirpc-dev \
libtool \
libtool-bin \
libxml2-dev \
libxml2-utils \
locales \
lsof \
make \
meson \
net-tools \
ninja-build \
patch \
perl \
pkgconf \
python3 \
python3-docutils \
python3-setuptools \
python3-wheel \
screen \
strace \
sudo \
valac \
vim \
xsltproc && \
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"

69
ci/fedora-31.Dockerfile Normal file
View File

@ -0,0 +1,69 @@
FROM fedora:31
RUN dnf update -y && \
dnf install -y \
autoconf \
automake \
bash \
bash-completion \
ca-certificates \
ccache \
chrony \
cppi \
cyrus-sasl-devel \
gcc \
gdb \
gdk-pixbuf2-devel \
gettext \
gettext-devel \
git \
glib2-devel \
glibc-devel \
glibc-langpack-en \
gnutls-devel \
gobject-introspection-devel \
gtk-doc \
gtk3-devel \
intltool \
libgcrypt-devel \
libgovirt-devel \
libnl3-devel \
libtirpc-devel \
libtool \
libxml2 \
libxml2-devel \
libxslt \
lsof \
make \
meson \
net-tools \
ninja-build \
patch \
perl \
pkgconfig \
pulseaudio-libs-devel \
python3 \
python3-docutils \
python3-setuptools \
python3-wheel \
rpcgen \
rpm-build \
screen \
spice-gtk3-devel \
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"

69
ci/fedora-32.Dockerfile Normal file
View File

@ -0,0 +1,69 @@
FROM fedora:32
RUN dnf update -y && \
dnf install -y \
autoconf \
automake \
bash \
bash-completion \
ca-certificates \
ccache \
chrony \
cppi \
cyrus-sasl-devel \
gcc \
gdb \
gdk-pixbuf2-devel \
gettext \
gettext-devel \
git \
glib2-devel \
glibc-devel \
glibc-langpack-en \
gnutls-devel \
gobject-introspection-devel \
gtk-doc \
gtk3-devel \
intltool \
libgcrypt-devel \
libgovirt-devel \
libnl3-devel \
libtirpc-devel \
libtool \
libxml2 \
libxml2-devel \
libxslt \
lsof \
make \
meson \
net-tools \
ninja-build \
patch \
perl \
pkgconfig \
pulseaudio-libs-devel \
python3 \
python3-docutils \
python3-setuptools \
python3-wheel \
rpcgen \
rpm-build \
screen \
spice-gtk3-devel \
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"

View File

@ -0,0 +1,70 @@
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 \
cyrus-sasl-devel \
gcc \
gdb \
gdk-pixbuf2-devel \
gettext \
gettext-devel \
git \
glib2-devel \
glibc-devel \
glibc-langpack-en \
gnutls-devel \
gobject-introspection-devel \
gtk-doc \
gtk3-devel \
intltool \
libgcrypt-devel \
libgovirt-devel \
libnl3-devel \
libtirpc-devel \
libtool \
libxml2 \
libxml2-devel \
libxslt \
lsof \
make \
meson \
net-tools \
ninja-build \
patch \
perl \
pkgconfig \
pulseaudio-libs-devel \
python3 \
python3-docutils \
python3-setuptools \
python3-wheel \
rpcgen \
rpm-build \
screen \
spice-gtk3-devel \
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"

View File

@ -0,0 +1,71 @@
FROM opensuse/leap:15.1
RUN zypper update -y && \
zypper install -y \
autoconf \
automake \
bash \
bash-completion \
ca-certificates \
ccache \
chrony \
cppi \
cyrus-sasl-devel \
gcc \
gdb \
gdk-pixbuf-devel \
gettext \
gettext-devel \
git \
glib2-devel \
glibc-devel \
glibc-locale \
gobject-introspection-devel \
gtk-doc \
gtk3-devel \
intltool \
libgcrypt-devel \
libgnutls-devel \
libgovirt-devel \
libnl3-devel \
libpulse-devel \
libtirpc-devel \
libtool \
libxml2 \
libxml2-devel \
libxslt \
lsof \
make \
net-tools \
ninja \
patch \
perl \
pkgconfig \
python3 \
python3-docutils \
python3-pip \
python3-setuptools \
python3-wheel \
rpcgen \
rpm-build \
screen \
spice-gtk-devel \
strace \
sudo \
vala \
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"

22
ci/refresh Executable file
View File

@ -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 freebsd | sed -e 's/libvirt-//')
for host in $HOSTS
do
$LCITOOL dockerfile libvirt-$host libvirt+minimal,libvirt-glib,gtk-vnc,virt-viewer > $host.Dockerfile
done

75
ci/ubuntu-1804.Dockerfile Normal file
View File

@ -0,0 +1,75 @@
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 \
gtk-doc-tools \
intltool \
libc-dev-bin \
libc6-dev \
libgcrypt20-dev \
libgdk-pixbuf2.0-dev \
libgirepository1.0-dev \
libglib2.0-dev \
libgnutls28-dev \
libgtk-3-dev \
libnl-3-dev \
libnl-route-3-dev \
libpulse-dev \
libsasl2-dev \
libspice-client-gtk-3.0-dev \
libtirpc-dev \
libtool \
libtool-bin \
libxml2-dev \
libxml2-utils \
locales \
lsof \
make \
net-tools \
ninja-build \
patch \
perl \
pkgconf \
python3 \
python3-docutils \
python3-pip \
python3-setuptools \
python3-wheel \
screen \
strace \
sudo \
valac \
vim \
xsltproc && \
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"

72
ci/ubuntu-2004.Dockerfile Normal file
View File

@ -0,0 +1,72 @@
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 \
gtk-doc-tools \
intltool \
libc-dev-bin \
libc6-dev \
libgcrypt20-dev \
libgdk-pixbuf2.0-dev \
libgirepository1.0-dev \
libglib2.0-dev \
libgnutls28-dev \
libgtk-3-dev \
libnl-3-dev \
libnl-route-3-dev \
libpulse-dev \
libsasl2-dev \
libspice-client-gtk-3.0-dev \
libtirpc-dev \
libtool \
libtool-bin \
libxml2-dev \
libxml2-utils \
locales \
lsof \
make \
meson \
net-tools \
ninja-build \
patch \
perl \
pkgconf \
python3 \
python3-docutils \
python3-setuptools \
python3-wheel \
screen \
strace \
sudo \
valac \
vim \
xsltproc && \
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"