Daniel Stone | 946fa21 | 2018-09-06 11:01:17 +0100 | [diff] [blame] | 1 | .artifacts-meson: &artifacts-meson |
| 2 | when: always |
| 3 | paths: |
| 4 | - _build/meson-logs |
| 5 | |
| 6 | .artifacts-autotools: &artifacts-autotools |
| 7 | when: always |
| 8 | paths: |
| 9 | - _build/*.log |
| 10 | - _build/*/*.log |
| 11 | - _build/*/*/*.log |
| 12 | |
Eric Engestrom | 7f7c28d | 2018-09-06 12:10:50 +0100 | [diff] [blame] | 13 | .meson-build: &meson-build |
| 14 | - meson _build |
| 15 | -D amdgpu=true |
| 16 | -D cairo-tests=true |
| 17 | -D etnaviv=true |
| 18 | -D exynos=true |
| 19 | -D freedreno=true |
| 20 | -D freedreno-kgsl=true |
| 21 | -D intel=true |
| 22 | -D libkms=true |
| 23 | -D man-pages=true |
| 24 | -D nouveau=true |
| 25 | -D omap=true |
| 26 | -D radeon=true |
| 27 | -D tegra=true |
| 28 | -D udev=true |
| 29 | -D valgrind=true |
| 30 | -D vc4=true |
| 31 | -D vmwgfx=true |
| 32 | - ninja -C _build |
| 33 | - ninja -C _build test |
| 34 | |
| 35 | .autotools-build: &autotools-build |
| 36 | - mkdir _build |
| 37 | - cd _build |
| 38 | - ../autogen.sh |
| 39 | --enable-udev |
| 40 | --enable-libkms |
| 41 | --enable-intel |
| 42 | --enable-radeon |
Emil Velikov | e08b7f2 | 2018-09-25 16:15:18 +0100 | [diff] [blame] | 43 | --enable-amdgpu |
Eric Engestrom | 7f7c28d | 2018-09-06 12:10:50 +0100 | [diff] [blame] | 44 | --enable-nouveau |
Emil Velikov | e08b7f2 | 2018-09-25 16:15:18 +0100 | [diff] [blame] | 45 | --enable-vmwgfx |
Eric Engestrom | 7f7c28d | 2018-09-06 12:10:50 +0100 | [diff] [blame] | 46 | --enable-omap-experimental-api |
| 47 | --enable-exynos-experimental-api |
| 48 | --enable-freedreno |
| 49 | --enable-freedreno-kgsl |
| 50 | --enable-tegra-experimental-api |
| 51 | --enable-vc4 |
| 52 | --enable-etnaviv-experimental-api |
| 53 | - make |
| 54 | - make check |
| 55 | |
Eric Engestrom | 4a9030d | 2018-08-30 15:51:40 +0100 | [diff] [blame] | 56 | latest-meson: |
| 57 | stage: build |
Eric Engestrom | 1592d47 | 2019-02-19 11:49:28 +0000 | [diff] [blame] | 58 | image: archlinux/base:latest |
Eric Engestrom | 4a9030d | 2018-08-30 15:51:40 +0100 | [diff] [blame] | 59 | before_script: |
| 60 | - pacman -Syu --noconfirm --needed |
| 61 | base-devel |
| 62 | meson |
| 63 | libpciaccess |
| 64 | libxslt docbook-xsl |
| 65 | valgrind |
| 66 | libatomic_ops |
| 67 | cairo cunit |
Eric Engestrom | 7f7c28d | 2018-09-06 12:10:50 +0100 | [diff] [blame] | 68 | script: *meson-build |
Eric Engestrom | 4a9030d | 2018-08-30 15:51:40 +0100 | [diff] [blame] | 69 | |
| 70 | latest-autotools: |
| 71 | stage: build |
Eric Engestrom | 1592d47 | 2019-02-19 11:49:28 +0000 | [diff] [blame] | 72 | image: archlinux/base:latest |
Daniel Stone | 946fa21 | 2018-09-06 11:01:17 +0100 | [diff] [blame] | 73 | artifacts: *artifacts-autotools |
Eric Engestrom | 4a9030d | 2018-08-30 15:51:40 +0100 | [diff] [blame] | 74 | before_script: |
| 75 | - pacman -Syu --noconfirm --needed |
| 76 | base-devel |
| 77 | libpciaccess |
| 78 | libxslt docbook-xsl |
| 79 | valgrind |
| 80 | libatomic_ops |
| 81 | cairo cunit |
| 82 | xorg-util-macros |
| 83 | git # autogen.sh depends on git |
Eric Engestrom | 7f7c28d | 2018-09-06 12:10:50 +0100 | [diff] [blame] | 84 | script: *autotools-build |
Eric Engestrom | 4a9030d | 2018-08-30 15:51:40 +0100 | [diff] [blame] | 85 | |
| 86 | oldest-meson: |
| 87 | stage: build |
| 88 | image: debian:stable |
Daniel Stone | 946fa21 | 2018-09-06 11:01:17 +0100 | [diff] [blame] | 89 | artifacts: *artifacts-meson |
Eric Engestrom | 4a9030d | 2018-08-30 15:51:40 +0100 | [diff] [blame] | 90 | before_script: |
| 91 | - printf > /etc/dpkg/dpkg.cfg.d/99-exclude-cruft "%s\n" |
| 92 | 'path-exclude=/usr/share/doc/*' |
| 93 | 'path-exclude=/usr/share/man/*' |
| 94 | - printf > /usr/sbin/policy-rc.d "%s\n" |
| 95 | '#!/bin/sh' |
| 96 | 'exit 101' |
| 97 | - chmod +x /usr/sbin/policy-rc.d |
| 98 | - apt-get update |
| 99 | - apt-get -y --no-install-recommends install |
| 100 | build-essential |
| 101 | pkg-config |
| 102 | xsltproc |
| 103 | libxslt1-dev docbook-xsl |
| 104 | valgrind |
| 105 | libatomic-ops-dev |
| 106 | libcairo2-dev libcunit1-dev |
| 107 | ninja-build |
| 108 | python3 python3-pip |
| 109 | wget |
| 110 | # We need `--no-check-certificate` here because Debian's CA list is |
| 111 | # too old to know about LetsEncrypt's CA, so it refuses to connect |
| 112 | # to FreeDesktop.org |
| 113 | - LIBPCIACCESS_VERSION=libpciaccess-0.10 && |
| 114 | wget --no-check-certificate https://xorg.freedesktop.org/releases/individual/lib/$LIBPCIACCESS_VERSION.tar.bz2 && |
| 115 | tar -jxvf $LIBPCIACCESS_VERSION.tar.bz2 && |
| 116 | (cd $LIBPCIACCESS_VERSION && ./configure --prefix=$HOME/prefix && make install) |
| 117 | - pip3 install wheel setuptools |
| 118 | - pip3 install meson==0.43 |
Eric Engestrom | 4a9030d | 2018-08-30 15:51:40 +0100 | [diff] [blame] | 119 | - export PKG_CONFIG_PATH=$HOME/prefix/lib/pkgconfig:$HOME/prefix/share/pkgconfig |
| 120 | - export LD_LIBRARY_PATH="$HOME/prefix/lib:$LD_LIBRARY_PATH" |
Eric Engestrom | 7f7c28d | 2018-09-06 12:10:50 +0100 | [diff] [blame] | 121 | script: *meson-build |
Eric Engestrom | 4a9030d | 2018-08-30 15:51:40 +0100 | [diff] [blame] | 122 | |
| 123 | oldest-autotools: |
| 124 | stage: build |
| 125 | image: debian:stable |
Daniel Stone | 946fa21 | 2018-09-06 11:01:17 +0100 | [diff] [blame] | 126 | artifacts: *artifacts-autotools |
Eric Engestrom | 4a9030d | 2018-08-30 15:51:40 +0100 | [diff] [blame] | 127 | before_script: |
| 128 | - printf > /etc/dpkg/dpkg.cfg.d/99-exclude-cruft "%s\n" |
| 129 | 'path-exclude=/usr/share/doc/*' |
| 130 | 'path-exclude=/usr/share/man/*' |
| 131 | - printf > /usr/sbin/policy-rc.d "%s\n" |
| 132 | '#!/bin/sh' |
| 133 | 'exit 101' |
| 134 | - chmod +x /usr/sbin/policy-rc.d |
| 135 | - apt-get update |
| 136 | - apt-get -y --no-install-recommends install |
| 137 | build-essential |
| 138 | automake |
| 139 | autoconf |
| 140 | libtool |
| 141 | pkg-config |
| 142 | xsltproc |
| 143 | libxslt1-dev docbook-xsl |
| 144 | valgrind |
| 145 | libatomic-ops-dev |
| 146 | libcairo2-dev libcunit1-dev |
| 147 | wget |
| 148 | xutils-dev |
| 149 | git # autogen.sh depends on git |
| 150 | # We need `--no-check-certificate` here because Debian's CA list is |
| 151 | # too old to know about LetsEncrypt's CA, so it refuses to connect |
| 152 | # to FreeDesktop.org |
| 153 | - LIBPCIACCESS_VERSION=libpciaccess-0.10 && |
| 154 | wget --no-check-certificate https://xorg.freedesktop.org/releases/individual/lib/$LIBPCIACCESS_VERSION.tar.bz2 && |
| 155 | tar -jxvf $LIBPCIACCESS_VERSION.tar.bz2 && |
| 156 | (cd $LIBPCIACCESS_VERSION && ./configure --prefix=$HOME/prefix && make install) |
Eric Engestrom | 4a9030d | 2018-08-30 15:51:40 +0100 | [diff] [blame] | 157 | - export PKG_CONFIG_PATH=$HOME/prefix/lib/pkgconfig:$HOME/prefix/share/pkgconfig |
| 158 | - export LD_LIBRARY_PATH="$HOME/prefix/lib:$LD_LIBRARY_PATH" |
Eric Engestrom | 7f7c28d | 2018-09-06 12:10:50 +0100 | [diff] [blame] | 159 | script: *autotools-build |