[PATCH libdrm] add gitlab-ci builds of libdrm

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxx>
---
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.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
+    - 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
-- 
Cheers,
  Eric

_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/dri-devel




[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux