-
Notifications
You must be signed in to change notification settings - Fork 38
/
.gitlab-ci.yml
129 lines (114 loc) · 2.9 KB
/
.gitlab-ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
# This is the tag of the docker image used for the build jobs. If the
# image doesn't exist yet, the containers stage generates it.
#
# 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: Replacing
# an image after a significant amount of time might pull in newer
# versions of gcc/clang or other packages, which might break the build
# with older commits using the same tag.
#
# After merging a change resulting in generating a new image to the
# main repository, it's recommended to remove the image from the source
# repository's container registry, so that the image from the main
# repository's registry will be used there as well.
variables:
UPSTREAM_REPO: mesa/drm
DEBIAN_TAG: "2021-02-11"
DEBIAN_VERSION: buster-slim
DEBIAN_IMAGE: "$CI_REGISTRY_IMAGE/debian/$DEBIAN_VERSION:$DEBIAN_TAG"
include:
- project: 'wayland/ci-templates'
ref: 0a9bdd33a98f05af6761ab118b5074952242aab0
file: '/templates/debian.yml'
stages:
- containers
- build
# When & how to run the CI
.ci-run-policy:
except:
- schedules
retry:
max: 2
when:
- runner_system_failure
# CONTAINERS
debian:
stage: containers
extends:
- .ci-run-policy
- .debian@container-ifnot-exists
variables:
GIT_STRATEGY: none # no need to pull the whole tree for rebuilding the image
DEBIAN_EXEC: 'bash .gitlab-ci/debian-install.sh'
# BUILD
.meson-build:
stage: build
variables:
GIT_DEPTH: 10
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=auto
-D vc4=true
-D vmwgfx=true
${CROSS+--cross /cross_file-$CROSS.txt}
- ninja -C build
- ninja -C build test
- DESTDIR=$PWD/install ninja -C build install
artifacts:
when: on_failure
paths:
- build/meson-logs/*
meson-x86_64:
extends:
- .ci-run-policy
- .meson-build
image: $DEBIAN_IMAGE
needs:
- debian
meson-i386:
extends: meson-x86_64
variables:
CROSS: i386
meson-aarch64:
extends: meson-x86_64
variables:
CROSS: arm64
meson-armhf:
extends: meson-x86_64
variables:
CROSS: armhf
meson-ppc64el:
extends: meson-x86_64
variables:
CROSS: ppc64el
meson-arch-daily:
rules:
- if: '$SCHEDULE == "arch-daily"'
when: on_success
- when: never
image: archlinux/archlinux:base-devel
before_script:
- pacman -Syu --noconfirm --needed
cairo
cunit
libatomic_ops
libpciaccess
meson
valgrind
python-docutils
extends: .meson-build