summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichel Dänzer <mdaenzer@redhat.com>2021-03-26 17:16:32 +0100
committerMichel Dänzer <michel@daenzer.net>2021-03-26 17:55:04 +0100
commitecced3b3c6af501c4c90265f8404b6898f3cf037 (patch)
treeb212abe510e8df173e567eeff6c0500b11c1bc02
parent77d9ab03ca20e683be4c40ccc879e201b538f7e5 (diff)
Add GitLab CI pipeline
Based on xf86-video-amdgpu, but applying experience gained in the meantime in other projects and taking advantage of new features available with current versions of GitLab.
-rw-r--r--.gitlab-ci.yml80
-rw-r--r--.gitlab-ci/debian-install.sh74
2 files changed, 154 insertions, 0 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 00000000..f7891323
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,80 @@
+# FDO_DISTRIBUTION_TAG is the tag of the docker image used for the build
+# jobs. If the image doesn't exist yet, the docker-image stage generates it
+# or copies it from upstream (this is all handled by the templates).
+#
+# In order to generate a new image, one should generally change the tag.
+# While removing the image from the registry would also work, that's not
+# recommended except for ephemeral images during development.
+#
+variables:
+ FDO_DISTRIBUTION_VERSION: buster-slim
+ FDO_DISTRIBUTION_EXEC: 'bash .gitlab-ci/debian-install.sh'
+ FDO_DISTRIBUTION_TAG: "2021-05-10"
+ FDO_UPSTREAM_REPO: xorg/driver/xf86-video-ati
+
+include:
+ - project: 'freedesktop/ci-templates'
+ ref: 290b79e0e78eab67a83766f4e9691be554fc4afd
+ file: '/templates/debian.yml'
+
+stages:
+ - docker-image
+ - build
+
+
+container-build:
+ extends:
+ - .fdo.container-build@debian
+ stage: docker-image
+ variables:
+
+
+# The default build instructions
+.default_build:
+ extends:
+ - .fdo.distribution-image@debian
+ stage: build
+ script:
+ - ./autogen.sh
+ - make -j${FDO_CI_CONCURRENT:-4} check V=1
+ variables:
+ CFLAGS: "-pipe -g -O2 -Werror"
+ ACLOCAL_PATH: /usr/local/xserver-$XSERVER_VERSION/share/aclocal
+ PKG_CONFIG_PATH: /usr/local/xserver-$XSERVER_VERSION/lib/pkgconfig
+
+build-distcheck:
+ extends:
+ - .default_build
+ script:
+ - ./autogen.sh
+ - make -j${FDO_CI_CONCURRENT:-4} check V=1
+ - make install V=1
+ - make -j${FDO_CI_CONCURRENT:-4} distcheck
+ variables:
+ XSERVER_VERSION: "1.20"
+
+build-gcc:
+ extends:
+ - .default_build
+ parallel:
+ matrix:
+ - XSERVER_VERSION: ["1.16", "1.17", "1.18", "1.19"]
+
+build-clang:
+ extends:
+ - .default_build
+ parallel:
+ matrix:
+ - XSERVER_VERSION: ["1.20", "1.18", "1.19"]
+ variables:
+ CC: clang
+
+build-noglamor:
+ extends:
+ - .default_build
+ script:
+ - ./autogen.sh --disable-glamor
+ - make -j${FDO_CI_CONCURRENT:-4} check V=1
+ parallel:
+ matrix:
+ - XSERVER_VERSION: ["1.13", "1.14", "1.15"]
diff --git a/.gitlab-ci/debian-install.sh b/.gitlab-ci/debian-install.sh
new file mode 100644
index 00000000..4e528588
--- /dev/null
+++ b/.gitlab-ci/debian-install.sh
@@ -0,0 +1,74 @@
+#!/bin/bash
+
+set -e
+set -o xtrace
+
+echo 'deb-src https://deb.debian.org/debian buster main' >/etc/apt/sources.list.d/deb-src.list
+apt-get update
+
+
+# Ephemeral packages (installed for this script and removed again at the end)
+EPHEMERAL="
+ ca-certificates
+ git
+ "
+
+# libXfont/xserver build dependencies
+apt-get install -y --no-remove \
+ autoconf \
+ automake \
+ build-essential \
+ libtool \
+ pkg-config \
+ $EPHEMERAL
+
+echo 'APT::Get::Build-Dep-Automatic "true";' >>/etc/apt/apt.conf
+apt-get build-dep -y xorg-server
+
+
+git clone https://gitlab.freedesktop.org/xorg/lib/libXfont.git
+cd libXfont
+git checkout libXfont-1.5-branch
+./autogen.sh
+make install-pkgconfigDATA
+cd ..
+rm -rf libXfont
+
+
+git clone https://gitlab.freedesktop.org/xorg/xserver.git
+cd xserver
+
+for VERSION in 1.13 1.14 1.15; do
+ git checkout server-${VERSION}-branch
+ ./autogen.sh --prefix=/usr/local/xserver-$VERSION --enable-dri2
+ make -C include install-nodist_sdkHEADERS
+ make install-headers install-aclocalDATA install-pkgconfigDATA clean
+done
+
+for VERSION in 1.16 1.17 1.18 1.19 1.20; do
+ git checkout server-${VERSION}-branch
+ ./autogen.sh --prefix=/usr/local/xserver-$VERSION --enable-dri2 --enable-dri3 --enable-glamor
+ make -C include install-nodist_sdkHEADERS
+ make install-headers install-aclocalDATA install-pkgconfigDATA clean
+done
+
+cd ..
+rm -rf xserver
+
+
+# xf86-video-ati build dependencies
+apt-get install -y --no-remove \
+ clang \
+ libdrm-dev \
+ libgbm-dev \
+ libgl1-mesa-dev \
+ libpciaccess-dev \
+ libpixman-1-dev \
+ libudev-dev \
+ xutils-dev \
+ x11proto-dev
+
+
+# Remove unneeded packages
+apt-get purge -y $EPHEMERAL
+apt-get autoremove -y --purge