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 --- See it in action on my fork: https://gitlab.freedesktop.org/eric/libdrm/pipelines/3885 --- .gitlab-ci.yml | 173 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 173 insertions(+) create mode 100644 .gitlab-ci.yml
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 00000000000000000000..a0f3ecb9d7f7f95443a7 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,173 @@ +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 + - LIBPCIACCESS_VERSION=libpciaccess-0.10 && + wget --no-check-certificate https://xorg.freedesktop.org/releases/individual/lib/$LIBPCIACCESS_VERSION.t... && + 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 + - LIBPCIACCESS_VERSION=libpciaccess-0.10 && + wget --no-check-certificate https://xorg.freedesktop.org/releases/individual/lib/$LIBPCIACCESS_VERSION.t... && + 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
Hi Eric,
On Fri, 31 Aug 2018 at 15:22, Eric Engestrom eric.engestrom@intel.com wrote:
Why are you using --no-check-certificate?!
Cheers, Daniel
On Friday, 2018-08-31 16:03:44 +0100, Daniel Stone wrote:
Right, forgot to add a comment for this, sorry.
fd.o uses LetsEncrypt, which is not present in the ca-certificate on debian:stable. I had to choose between ignoring the certificate error or use a custom CA, which just didn't seem worth it.
Cheers, Daniel
On Fri, Aug 31, 2018 at 05:13:25PM +0100, Eric Engestrom wrote:
Slightly more modern distro then? On the kernel side we're going with fedora:latest, that also tends to have all the latest bells&whistles we need for compiling some of our things. -Daniel
On Monday, 2018-09-03 09:50:06 +0200, Daniel Vetter wrote:
I have two distros in this pipeline: arch to test the up-to-date stuff and debian to test the ancient stuff. Should I drop debian and just keep arch to only have the up-to-date test?
FYI, I'm planning on adding freebsd too (later this week hopefully).
On Mon, Sep 03, 2018 at 09:07:10AM +0100, Eric Engestrom wrote:
Ah, I missed that. Makes sense (if you add a comment to explain this).
FYI, I'm planning on adding freebsd too (later this week hopefully).
I think cross-compiling to arm/arm64, and making sure x86 (the 32bit stuff) keeps working would be great too. If you go to the trouble of testing all these things :-) -Daniel
On Fri, Aug 31, 2018 at 03:18:56PM +0100, Eric Engestrom wrote:
With the --no-check-certificate things explained:
Reviewed-by: Daniel Vetter daniel.vetter@ffwll.ch
Hi,
On Mon, 3 Sep 2018 at 09:45, Daniel Vetter daniel@ffwll.ch wrote:
Indeed, and also: Reviewed-by: Daniel Stone daniels@collabora.com
Thanks for doing this!
Cheers, Daniel
dri-devel@lists.freedesktop.org