diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 00000000..eee6abfc --- /dev/null +++ b/.gitlab-ci.yml @@ -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