add gitlab-ci builds of libdrm

It currently does 4 builds: 2 using Meson and 2 using Autotools, 2 using
the latest dependencies on ArchLinux and 2 using very old dependencies
on Debian (including manually building libpciaccess to have the oldest
version supported, to make sure it keeps being supported).

All the build options are turned on for both Meson and Autotools.

Signed-off-by: Eric Engestrom <eric.engestrom@intel.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Daniel Stone <daniels@collabora.com>
main
Eric Engestrom 2018-08-30 15:51:40 +01:00
parent 4d87c2e203
commit 4a9030dc8b
1 changed files with 179 additions and 0 deletions

179
.gitlab-ci.yml Normal file
View File

@ -0,0 +1,179 @@
latest-meson:
stage: build
image: base/archlinux:latest
before_script:
- pacman -Syu --noconfirm --needed
base-devel
meson
libpciaccess
libxslt docbook-xsl
valgrind
libatomic_ops
cairo cunit
script:
- meson _build
-D amdgpu=true
-D cairo-tests=true
-D etnaviv=true
-D exynos=true
-D freedreno=true
-D freedreno-kgsl=true
-D intel=true
-D libkms=true
-D man-pages=true
-D nouveau=true
-D omap=true
-D radeon=true
-D tegra=true
-D udev=true
-D valgrind=true
-D vc4=true
-D vmwgfx=true
- ninja -C _build
- ninja -C _build test
latest-autotools:
stage: build
image: base/archlinux:latest
before_script:
- pacman -Syu --noconfirm --needed
base-devel
libpciaccess
libxslt docbook-xsl
valgrind
libatomic_ops
cairo cunit
xorg-util-macros
git # autogen.sh depends on git
script:
- mkdir _build
- cd _build
- ../autogen.sh
--enable-udev
--enable-libkms
--enable-intel
--enable-radeon
--enable-admgpu
--enable-nouveau
--enable-vmwfgx
--enable-omap-experimental-api
--enable-exynos-experimental-api
--enable-freedreno
--enable-freedreno-kgsl
--enable-tegra-experimental-api
--enable-vc4
--enable-etnaviv-experimental-api
- make
- make check
oldest-meson:
stage: build
image: debian:stable
before_script:
- printf > /etc/dpkg/dpkg.cfg.d/99-exclude-cruft "%s\n"
'path-exclude=/usr/share/doc/*'
'path-exclude=/usr/share/man/*'
- printf > /usr/sbin/policy-rc.d "%s\n"
'#!/bin/sh'
'exit 101'
- chmod +x /usr/sbin/policy-rc.d
- apt-get update
- apt-get -y --no-install-recommends install
build-essential
pkg-config
xsltproc
libxslt1-dev docbook-xsl
valgrind
libatomic-ops-dev
libcairo2-dev libcunit1-dev
ninja-build
python3 python3-pip
wget
# We need `--no-check-certificate` here because Debian's CA list is
# too old to know about LetsEncrypt's CA, so it refuses to connect
# to FreeDesktop.org
- LIBPCIACCESS_VERSION=libpciaccess-0.10 &&
wget --no-check-certificate https://xorg.freedesktop.org/releases/individual/lib/$LIBPCIACCESS_VERSION.tar.bz2 &&
tar -jxvf $LIBPCIACCESS_VERSION.tar.bz2 &&
(cd $LIBPCIACCESS_VERSION && ./configure --prefix=$HOME/prefix && make install)
- pip3 install wheel setuptools
- pip3 install meson==0.43
script:
- export PKG_CONFIG_PATH=$HOME/prefix/lib/pkgconfig:$HOME/prefix/share/pkgconfig
- export LD_LIBRARY_PATH="$HOME/prefix/lib:$LD_LIBRARY_PATH"
- meson _build
-D amdgpu=true
-D cairo-tests=true
-D etnaviv=true
-D exynos=true
-D freedreno=true
-D freedreno-kgsl=true
-D intel=true
-D libkms=true
-D man-pages=true
-D nouveau=true
-D omap=true
-D radeon=true
-D tegra=true
-D udev=true
-D valgrind=true
-D vc4=true
-D vmwgfx=true
- ninja -C _build
- ninja -C _build test
oldest-autotools:
stage: build
image: debian:stable
before_script:
- printf > /etc/dpkg/dpkg.cfg.d/99-exclude-cruft "%s\n"
'path-exclude=/usr/share/doc/*'
'path-exclude=/usr/share/man/*'
- printf > /usr/sbin/policy-rc.d "%s\n"
'#!/bin/sh'
'exit 101'
- chmod +x /usr/sbin/policy-rc.d
- apt-get update
- apt-get -y --no-install-recommends install
build-essential
automake
autoconf
libtool
pkg-config
xsltproc
libxslt1-dev docbook-xsl
valgrind
libatomic-ops-dev
libcairo2-dev libcunit1-dev
wget
xutils-dev
git # autogen.sh depends on git
# We need `--no-check-certificate` here because Debian's CA list is
# too old to know about LetsEncrypt's CA, so it refuses to connect
# to FreeDesktop.org
- LIBPCIACCESS_VERSION=libpciaccess-0.10 &&
wget --no-check-certificate https://xorg.freedesktop.org/releases/individual/lib/$LIBPCIACCESS_VERSION.tar.bz2 &&
tar -jxvf $LIBPCIACCESS_VERSION.tar.bz2 &&
(cd $LIBPCIACCESS_VERSION && ./configure --prefix=$HOME/prefix && make install)
script:
- export PKG_CONFIG_PATH=$HOME/prefix/lib/pkgconfig:$HOME/prefix/share/pkgconfig
- export LD_LIBRARY_PATH="$HOME/prefix/lib:$LD_LIBRARY_PATH"
- mkdir _build
- cd _build
- ../autogen.sh
--enable-udev
--enable-libkms
--enable-intel
--enable-radeon
--enable-admgpu
--enable-nouveau
--enable-vmwfgx
--enable-omap-experimental-api
--enable-exynos-experimental-api
--enable-freedreno
--enable-freedreno-kgsl
--enable-tegra-experimental-api
--enable-vc4
--enable-etnaviv-experimental-api
- make
- make check