drm/.gitlab-ci.yml

160 lines
4.5 KiB
YAML

.artifacts-meson: &artifacts-meson
when: always
paths:
- _build/meson-logs
.artifacts-autotools: &artifacts-autotools
when: always
paths:
- _build/*.log
- _build/*/*.log
- _build/*/*/*.log
.meson-build: &meson-build
- 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
.autotools-build: &autotools-build
- mkdir _build
- cd _build
- ../autogen.sh
--enable-udev
--enable-libkms
--enable-intel
--enable-radeon
--enable-amdgpu
--enable-nouveau
--enable-vmwgfx
--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
latest-meson:
stage: build
image: archlinux/base:latest
before_script:
- pacman -Syu --noconfirm --needed
base-devel
meson
libpciaccess
libxslt docbook-xsl
valgrind
libatomic_ops
cairo cunit
script: *meson-build
latest-autotools:
stage: build
image: archlinux/base:latest
artifacts: *artifacts-autotools
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: *autotools-build
oldest-meson:
stage: build
image: debian:stable
artifacts: *artifacts-meson
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
- export PKG_CONFIG_PATH=$HOME/prefix/lib/pkgconfig:$HOME/prefix/share/pkgconfig
- export LD_LIBRARY_PATH="$HOME/prefix/lib:$LD_LIBRARY_PATH"
script: *meson-build
oldest-autotools:
stage: build
image: debian:stable
artifacts: *artifacts-autotools
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)
- export PKG_CONFIG_PATH=$HOME/prefix/lib/pkgconfig:$HOME/prefix/share/pkgconfig
- export LD_LIBRARY_PATH="$HOME/prefix/lib:$LD_LIBRARY_PATH"
script: *autotools-build