diff options
author | Michel Dänzer <mdaenzer@redhat.com> | 2021-03-26 17:16:32 +0100 |
---|---|---|
committer | Michel Dänzer <michel@daenzer.net> | 2021-03-26 17:55:04 +0100 |
commit | ecced3b3c6af501c4c90265f8404b6898f3cf037 (patch) | |
tree | b212abe510e8df173e567eeff6c0500b11c1bc02 | |
parent | 77d9ab03ca20e683be4c40ccc879e201b538f7e5 (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.yml | 80 | ||||
-rw-r--r-- | .gitlab-ci/debian-install.sh | 74 |
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 |