blob: 26eaf83bd348acf9de6ec998a1a2f8e236c92ac3 [file] [log] [blame]
Eric Engestromc69c9c42019-09-25 22:54:59 +01001# This is the tag of the docker image used for the build jobs. If the
2# image doesn't exist yet, the containers stage generates it.
3#
4# In order to generate a new image, one should generally change the tag.
5# While removing the image from the registry would also work, that's not
6# recommended except for ephemeral images during development: Replacing
7# an image after a significant amount of time might pull in newer
8# versions of gcc/clang or other packages, which might break the build
9# with older commits using the same tag.
10#
11# After merging a change resulting in generating a new image to the
12# main repository, it's recommended to remove the image from the source
13# repository's container registry, so that the image from the main
14# repository's registry will be used there as well.
15variables:
16 UPSTREAM_REPO: mesa/drm
Marius Vlad67e91192021-02-01 13:23:20 +020017 DEBIAN_TAG: "2021-02-11"
Eric Engestromc69c9c42019-09-25 22:54:59 +010018 DEBIAN_VERSION: buster-slim
19 DEBIAN_IMAGE: "$CI_REGISTRY_IMAGE/debian/$DEBIAN_VERSION:$DEBIAN_TAG"
Daniel Stone946fa212018-09-06 11:01:17 +010020
Eric Engestromc69c9c42019-09-25 22:54:59 +010021include:
22 - project: 'wayland/ci-templates'
Pierre-Eric Pelloux-Prayer325a0632019-12-03 16:00:41 +010023 ref: 0a9bdd33a98f05af6761ab118b5074952242aab0
Eric Engestromc69c9c42019-09-25 22:54:59 +010024 file: '/templates/debian.yml'
Eric Engestrom7f7c28d2018-09-06 12:10:50 +010025
Eric Engestromc69c9c42019-09-25 22:54:59 +010026stages:
27 - containers
28 - build
29
30
31# When & how to run the CI
32.ci-run-policy:
Eric Engestrom1128fa12019-11-12 12:13:11 +000033 except:
34 - schedules
Eric Engestromc69c9c42019-09-25 22:54:59 +010035 retry:
36 max: 2
37 when:
38 - runner_system_failure
39
40# CONTAINERS
41
42debian:
43 stage: containers
44 extends:
45 - .ci-run-policy
46 - .debian@container-ifnot-exists
47 variables:
48 GIT_STRATEGY: none # no need to pull the whole tree for rebuilding the image
49 DEBIAN_EXEC: 'bash .gitlab-ci/debian-install.sh'
50
Eric Engestromc69c9c42019-09-25 22:54:59 +010051
52# BUILD
53
54.meson-build:
Eric Engestrom4a9030d2018-08-30 15:51:40 +010055 stage: build
Eric Engestromc69c9c42019-09-25 22:54:59 +010056 variables:
57 GIT_DEPTH: 10
58 script:
Eric Engestrom6d3f06f2019-12-17 22:29:11 +000059 - meson build
Eric Engestromc69c9c42019-09-25 22:54:59 +010060 -D amdgpu=true
61 -D cairo-tests=true
62 -D etnaviv=true
63 -D exynos=true
64 -D freedreno=true
65 -D freedreno-kgsl=true
66 -D intel=true
67 -D libkms=true
68 -D man-pages=true
69 -D nouveau=true
70 -D omap=true
71 -D radeon=true
72 -D tegra=true
73 -D udev=true
Eric Engestrom55be53d2019-10-20 23:06:56 +010074 -D valgrind=auto
Eric Engestromc69c9c42019-09-25 22:54:59 +010075 -D vc4=true
76 -D vmwgfx=true
Eric Engestrom55be53d2019-10-20 23:06:56 +010077 ${CROSS+--cross /cross_file-$CROSS.txt}
Eric Engestrom6d3f06f2019-12-17 22:29:11 +000078 - ninja -C build
79 - ninja -C build test
80 - DESTDIR=$PWD/install ninja -C build install
Eric Engestromc69c9c42019-09-25 22:54:59 +010081 artifacts:
82 when: on_failure
83 paths:
Eric Engestrom6d3f06f2019-12-17 22:29:11 +000084 - build/meson-logs/*
Eric Engestrom4a9030d2018-08-30 15:51:40 +010085
Eric Engestrom1128fa12019-11-12 12:13:11 +000086meson-x86_64:
87 extends:
88 - .ci-run-policy
89 - .meson-build
Eric Engestromc69c9c42019-09-25 22:54:59 +010090 image: $DEBIAN_IMAGE
91 needs:
92 - debian
93
Eric Engestrom202d10a2018-09-05 12:23:26 +010094meson-i386:
95 extends: meson-x86_64
96 variables:
97 CROSS: i386
98
Eric Engestroma39c34e2018-10-24 11:19:15 +010099meson-aarch64:
100 extends: meson-x86_64
101 variables:
102 CROSS: arm64
103
104meson-armhf:
105 extends: meson-x86_64
106 variables:
107 CROSS: armhf
108
Eric Engestrom9d488952019-11-16 11:13:36 +0000109meson-ppc64el:
110 extends: meson-x86_64
111 variables:
112 CROSS: ppc64el
113
Eric Engestrom1128fa12019-11-12 12:13:11 +0000114meson-arch-daily:
115 rules:
116 - if: '$SCHEDULE == "arch-daily"'
117 when: on_success
118 - when: never
Eric Engestrombf089842021-04-29 10:15:11 +0200119 image: archlinux/archlinux:base-devel
Eric Engestrom1128fa12019-11-12 12:13:11 +0000120 before_script:
121 - pacman -Syu --noconfirm --needed
Eric Engestrom1128fa12019-11-12 12:13:11 +0000122 cairo
123 cunit
Eric Engestrom1128fa12019-11-12 12:13:11 +0000124 libatomic_ops
125 libpciaccess
Eric Engestrom1128fa12019-11-12 12:13:11 +0000126 meson
127 valgrind
Simon Ser05b0a952020-06-03 11:58:07 +0200128 python-docutils
Eric Engestromc69c9c42019-09-25 22:54:59 +0100129 extends: .meson-build