blob: 7ed538a4d1fc12fe3d77c4ebda4179f3a29eba05 [file] [log] [blame]
Arkadiusz Hiler26494662018-10-24 12:27:04 +03001image: $CI_REGISTRY/$CI_PROJECT_PATH/igt-fedora:latest
Arkadiusz Hilerfa6dbf82018-09-28 16:05:59 +03002variables:
3 MESON_OPTIONS: >
Simon Ser0ea68a12019-07-05 16:42:23 +03004 -Dlibdrm_drivers=intel,nouveau,amdgpu
5 -Doverlay=enabled
6 -Dchamelium=enabled
7 -Dvalgrind=enabled
8 -Dman=enabled
9 -Dtests=enabled
10 -Drunner=enabled
11 -Dlibunwind=enabled
Daniel Vettera260cab2018-12-07 15:00:10 +010012 LANG: "C.UTF-8"
Arkadiusz Hilerfa6dbf82018-09-28 16:05:59 +030013
14stages:
15 - containers
16 - build
17 - test
18 - deploy
19
Arkadiusz Hiler96222532018-10-24 13:28:08 +030020#################### BUILD #########################
21
Arkadiusz Hilerfa6dbf82018-09-28 16:05:59 +030022build:tests-fedora:
23 stage: build
24 script:
Arkadiusz Hilerfa6dbf82018-09-28 16:05:59 +030025 - meson $MESON_OPTIONS build
26 - ninja -C build
Daniel Vetter445c2052018-10-30 13:22:14 +010027 - ninja -C build igt-gpu-tools-doc
Arkadiusz Hilerfa6dbf82018-09-28 16:05:59 +030028 artifacts:
29 paths:
30 - build
31
Daniel Vetterc2e577b2018-10-30 13:22:13 +010032build:tests-fedora-no-libunwind:
33 stage: build
34 script:
35 - dnf remove -y libunwind-devel
Simon Ser0ea68a12019-07-05 16:42:23 +030036 - meson -Dlibunwind=disabled build
Daniel Vetterc2e577b2018-10-30 13:22:13 +010037 - ninja -C build
38
Arkadiusz Hilerd445be02018-10-24 14:47:02 +030039# documentation building is different with meson<0.47
40build:tests-fedora-oldest-meson:
41 stage: build
42 script:
43 - dnf remove -y meson
44 - pip3 install /usr/src/meson-*.tar.gz
45 - meson $MESON_OPTIONS build
46 - ninja -C build
47 - ninja -C build igt-gpu-tools-doc
48
Simon Serf052e492019-04-24 19:15:26 +030049build:tests-fedora-clang:
50 stage: build
51 variables:
52 CC: clang
53 script:
54 - meson $MESON_OPTIONS build
55 - ninja -C build
56 artifacts:
57 paths:
58 - build
59
Arkadiusz Hiler96222532018-10-24 13:28:08 +030060build:tests-debian-meson:
Arkadiusz Hiler26494662018-10-24 12:27:04 +030061 image: $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian:latest
Arkadiusz Hilerfa6dbf82018-09-28 16:05:59 +030062 stage: build
63 script:
64 - meson $MESON_OPTIONS build
65 - ninja -C build
Arkadiusz Hiler96222532018-10-24 13:28:08 +030066 - cp build/tests/test-list.txt meson-test-list.txt
67 artifacts:
68 paths:
69 - meson-test-list.txt
70
Petri Latvala771cd832019-06-03 14:59:43 +030071build:tests-debian-minimal:
72 image: $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian-minimal:latest
73 stage: build
74 script:
Simon Ser0ea68a12019-07-05 16:42:23 +030075 - meson -Dtests=disabled -Dlibdrm_drivers="" build
Petri Latvala771cd832019-06-03 14:59:43 +030076 - ninja -C build
77 artifacts:
78 paths:
79 - build
80
Tomi Valkeinene55d4392019-02-13 15:14:28 +020081build:tests-debian-meson-armhf:
82 image: $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian-armhf:latest
83 stage: build
84 script:
85 - export PKG_CONFIG_PATH=/usr/lib/arm-linux-gnueabihf/pkgconfig/
86 - meson --cross-file meson-cross-armhf.txt build
87 - ninja -C build
88 artifacts:
89 paths:
90 - build
91
Daniel Vetterf882a542018-10-30 13:22:15 +010092build:tests-debian-meson-arm64:
93 image: $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian-arm64:latest
94 stage: build
95 script:
Daniel Vetterb55279b2018-12-05 09:08:14 +010096 - export PKG_CONFIG_PATH=/usr/lib/aarch64-linux-gnu/pkgconfig/
97 - meson --cross-file meson-cross-arm64.txt build
Daniel Vetterf882a542018-10-30 13:22:15 +010098 - ninja -C build
99 artifacts:
100 paths:
101 - build
Arkadiusz Hilerfa6dbf82018-09-28 16:05:59 +0300102
Guillaume Tucker439a9f52019-06-13 15:01:06 +0100103build:tests-debian-meson-mips:
104 image: $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian-mips:latest
105 stage: build
106 script:
107 - export PKG_CONFIG_PATH=/usr/lib/mips-linux-gnu/pkgconfig/
108 - meson --cross-file meson-cross-mips.txt build
109 - ninja -C build
110 artifacts:
111 paths:
112 - build
113
Arkadiusz Hiler6fe22662018-10-24 12:54:41 +0300114build:tests-debian-autotools:
115 image: $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian:latest
116 stage: build
117 script:
118 - ./autogen.sh --enable-{chamelium,audio,intel,amdgpu,nouveau,tests,runner}
119 - make -j
Arkadiusz Hiler96222532018-10-24 13:28:08 +0300120 - cp tests/test-list.txt autotools-test-list.txt
121 artifacts:
122 paths:
123 - autotools-test-list.txt
Arkadiusz Hiler6fe22662018-10-24 12:54:41 +0300124
Arkadiusz Hiler96222532018-10-24 13:28:08 +0300125#################### TEST ##########################
126
127test:ninja-test:
128 dependencies:
129 - build:tests-fedora
Arkadiusz Hilerfa6dbf82018-09-28 16:05:59 +0300130 stage: test
Arkadiusz Hiler96222532018-10-24 13:28:08 +0300131 script: ninja -C build test
132
Simon Serf052e492019-04-24 19:15:26 +0300133test:ninja-test-clang:
134 dependencies:
135 - build:tests-fedora-clang
136 variables:
137 CC: clang
138 stage: test
139 script: ninja -C build test
140
Petri Latvala771cd832019-06-03 14:59:43 +0300141test:ninja-test-minimal:
142 image: $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian-minimal:latest
143 dependencies:
144 - build:tests-debian-minimal
145 stage: test
146 script: ninja -C build test
147
Daniel Vetterf882a542018-10-30 13:22:15 +0100148test:ninja-test-arm64:
Daniel Vetterf882a542018-10-30 13:22:15 +0100149 image: $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian-arm64:latest
150 dependencies:
151 - build:tests-debian-meson-arm64
152 stage: test
Daniel Vetter285ebfb2018-11-29 15:11:43 +0100153 script:
Daniel Vetterb55279b2018-12-05 09:08:14 +0100154 - export PKG_CONFIG_PATH=/usr/lib/aarch64-linux-gnu/pkgconfig/
Daniel Vetter285ebfb2018-11-29 15:11:43 +0100155 - env > build/envdump.txt
156 - ninja -C build test
157 artifacts:
158 paths:
159 - build
160 when: on_failure
Daniel Vetterf882a542018-10-30 13:22:15 +0100161
Arkadiusz Hiler327f40b2019-02-13 16:24:33 +0200162test:ninja-test-armhf:
163 image: $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian-armhf:latest
164 dependencies:
165 - build:tests-debian-meson-armhf
166 stage: test
167 script:
168 - export PKG_CONFIG_PATH=/usr/lib/arm-linux-gnueabihf/pkgconfig/
169 - env > build/envdump.txt
170 - ninja -C build test
171 artifacts:
172 paths:
173 - build
174 when: on_failure
175
Guillaume Tucker5f6cf702019-06-27 14:30:58 +0100176test:ninja-test-mips:
177 image: $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian-mips:latest
178 dependencies:
179 - build:tests-debian-meson-mips
180 stage: test
181 script:
182 - export PKG_CONFIG_PATH=/usr/lib/mips-linux-gnu/pkgconfig/
183 - env > build/envdump.txt
184 - ninja -C build test
185 artifacts:
186 paths:
187 - build
188 when: on_failure
189
Arkadiusz Hiler96222532018-10-24 13:28:08 +0300190test:test-list-diff:
191 dependencies:
192 - build:tests-debian-autotools
193 - build:tests-debian-meson
194 stage: test
Tomeu Vizoso7e0246a2019-05-10 16:34:12 +0200195 script: diff <(sed "s/ /\n/g" meson-test-list.txt| grep -v 'vc4\|v3d\|panfrost' | sort) <(sed "s/ /\n/g" autotools-test-list.txt | sort)
Arkadiusz Hiler96222532018-10-24 13:28:08 +0300196
197################### DEPLOY #########################
Arkadiusz Hilerfa6dbf82018-09-28 16:05:59 +0300198
199pages:
Arkadiusz Hiler5b7402b2019-04-30 14:22:33 +0300200 when: manual
Arkadiusz Hiler96222532018-10-24 13:28:08 +0300201 dependencies:
202 - build:tests-fedora
Arkadiusz Hilerfa6dbf82018-09-28 16:05:59 +0300203 stage: deploy
204 script:
205 - ninja -C build igt-gpu-tools-doc
206 - cp -r build/docs/reference/igt-gpu-tools/html public
207 artifacts:
208 paths:
209 - public
210 only:
211 - master
212
Arkadiusz Hiler96222532018-10-24 13:28:08 +0300213################# CONTAINERS #######################
214
Arkadiusz Hilerfa6dbf82018-09-28 16:05:59 +0300215containers:igt-debian:
216 stage: containers
Arkadiusz Hilerfa6dbf82018-09-28 16:05:59 +0300217 image: docker:stable
Arkadiusz Hilerb517f652018-10-30 13:19:46 +0200218 only:
219 changes:
Petri Latvala771cd832019-06-03 14:59:43 +0300220 - Dockerfile.debian-minimal
Arkadiusz Hilerb517f652018-10-30 13:19:46 +0200221 - Dockerfile.debian
Daniel Vetter29ae0922018-10-31 14:32:23 +0100222 - .gitlab-ci.yml
Arkadiusz Hilerfa6dbf82018-09-28 16:05:59 +0300223 services:
224 - docker:dind
225 variables:
226 DOCKER_HOST: tcp://docker:2375
227 DOCKER_DRIVER: overlay2
228 script:
229 - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
Petri Latvala771cd832019-06-03 14:59:43 +0300230 - docker build -t $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian-minimal -t igt-debian-minimal -f Dockerfile.debian-minimal .
Arkadiusz Hilerfa6dbf82018-09-28 16:05:59 +0300231 - docker build -t $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian -f Dockerfile.debian .
Petri Latvala771cd832019-06-03 14:59:43 +0300232 - docker push $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian-minimal
Arkadiusz Hilerfa6dbf82018-09-28 16:05:59 +0300233 - docker push $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian
234
Tomi Valkeinene55d4392019-02-13 15:14:28 +0200235containers:igt-debian-armhf:
236 stage: containers
237 image: docker:stable
238 only:
239 changes:
240 - Dockerfile.debian-armhf
241 - .gitlab-ci.yml
242 services:
243 - docker:dind
244 variables:
245 DOCKER_HOST: tcp://docker:2375
246 DOCKER_DRIVER: overlay2
247 script:
248 - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
249 - docker build -t $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian-armhf -f Dockerfile.debian-armhf .
250 - docker push $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian-armhf
251
Daniel Vetterf882a542018-10-30 13:22:15 +0100252containers:igt-debian-arm64:
253 stage: containers
254 image: docker:stable
255 only:
256 changes:
257 - Dockerfile.debian-arm64
Daniel Vetter29ae0922018-10-31 14:32:23 +0100258 - .gitlab-ci.yml
Daniel Vetterf882a542018-10-30 13:22:15 +0100259 services:
260 - docker:dind
261 variables:
262 DOCKER_HOST: tcp://docker:2375
263 DOCKER_DRIVER: overlay2
264 script:
265 - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
266 - docker build -t $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian-arm64 -f Dockerfile.debian-arm64 .
267 - docker push $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian-arm64
268
Guillaume Tucker439a9f52019-06-13 15:01:06 +0100269containers:igt-debian-mips:
270 stage: containers
271 image: docker:stable
272 only:
273 changes:
274 - Dockerfile.debian-mips
275 - .gitlab-ci.yml
276 services:
277 - docker:dind
278 variables:
279 DOCKER_HOST: tcp://docker:2375
280 DOCKER_DRIVER: overlay2
281 script:
282 - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
283 - docker build -t $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian-mips -f Dockerfile.debian-mips .
284 - docker push $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian-mips
285
Arkadiusz Hilerfa6dbf82018-09-28 16:05:59 +0300286containers:igt-fedora:
287 stage: containers
Arkadiusz Hilerfa6dbf82018-09-28 16:05:59 +0300288 image: docker:stable
Arkadiusz Hilerb517f652018-10-30 13:19:46 +0200289 only:
290 changes:
291 - Dockerfile.fedora
Daniel Vetter29ae0922018-10-31 14:32:23 +0100292 - .gitlab-ci.yml
Arkadiusz Hilerfa6dbf82018-09-28 16:05:59 +0300293 services:
294 - docker:dind
295 variables:
296 DOCKER_HOST: tcp://docker:2375
297 DOCKER_DRIVER: overlay2
298 script:
299 - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
300 - docker build -t $CI_REGISTRY/$CI_PROJECT_PATH/igt-fedora -f Dockerfile.fedora .
301 - docker push $CI_REGISTRY/$CI_PROJECT_PATH/igt-fedora