blob: ae8cbb67d32009fa3f1a6985ef488ffc7a66c1b2 [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: >
4 -Dwith_libdrm=intel,nouveau,amdgpu
5 -Dbuild_overlay=true
6 -Dbuild_audio=true
7 -Dbuild_chamelium=true
8 -Dwith_valgrind=true
9 -Dbuild_man=true
10 -Dbuild_tests=true
11 -Dbuild_runner=true
Daniel Vetterc2e577b2018-10-30 13:22:13 +010012 -Dwith_libunwind=true
Daniel Vettera260cab2018-12-07 15:00:10 +010013 LANG: "C.UTF-8"
Arkadiusz Hilerfa6dbf82018-09-28 16:05:59 +030014
15stages:
16 - containers
17 - build
18 - test
19 - deploy
20
Arkadiusz Hiler96222532018-10-24 13:28:08 +030021#################### BUILD #########################
22
Arkadiusz Hilerfa6dbf82018-09-28 16:05:59 +030023build:tests-fedora:
24 stage: build
25 script:
Arkadiusz Hilerfa6dbf82018-09-28 16:05:59 +030026 - meson $MESON_OPTIONS build
27 - ninja -C build
Daniel Vetter445c2052018-10-30 13:22:14 +010028 - ninja -C build igt-gpu-tools-doc
Arkadiusz Hilerfa6dbf82018-09-28 16:05:59 +030029 artifacts:
30 paths:
31 - build
32
Daniel Vetterc2e577b2018-10-30 13:22:13 +010033build:tests-fedora-no-libunwind:
34 stage: build
35 script:
36 - dnf remove -y libunwind-devel
37 - meson -Dlibunwind=false build
38 - ninja -C build
39
Arkadiusz Hilerd445be02018-10-24 14:47:02 +030040# documentation building is different with meson<0.47
41build:tests-fedora-oldest-meson:
42 stage: build
43 script:
44 - dnf remove -y meson
45 - pip3 install /usr/src/meson-*.tar.gz
46 - meson $MESON_OPTIONS build
47 - ninja -C build
48 - ninja -C build igt-gpu-tools-doc
49
Arkadiusz Hiler96222532018-10-24 13:28:08 +030050build:tests-debian-meson:
Arkadiusz Hiler26494662018-10-24 12:27:04 +030051 image: $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian:latest
Arkadiusz Hilerfa6dbf82018-09-28 16:05:59 +030052 stage: build
53 script:
54 - meson $MESON_OPTIONS build
55 - ninja -C build
Arkadiusz Hiler96222532018-10-24 13:28:08 +030056 - cp build/tests/test-list.txt meson-test-list.txt
57 artifacts:
58 paths:
59 - meson-test-list.txt
60
Tomi Valkeinene55d4392019-02-13 15:14:28 +020061build:tests-debian-meson-armhf:
62 image: $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian-armhf:latest
63 stage: build
64 script:
65 - export PKG_CONFIG_PATH=/usr/lib/arm-linux-gnueabihf/pkgconfig/
66 - meson --cross-file meson-cross-armhf.txt build
67 - ninja -C build
68 artifacts:
69 paths:
70 - build
71
Daniel Vetterf882a542018-10-30 13:22:15 +010072build:tests-debian-meson-arm64:
73 image: $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian-arm64:latest
74 stage: build
75 script:
Daniel Vetterb55279b2018-12-05 09:08:14 +010076 - export PKG_CONFIG_PATH=/usr/lib/aarch64-linux-gnu/pkgconfig/
77 - meson --cross-file meson-cross-arm64.txt build
Daniel Vetterf882a542018-10-30 13:22:15 +010078 - ninja -C build
79 artifacts:
80 paths:
81 - build
Arkadiusz Hilerfa6dbf82018-09-28 16:05:59 +030082
Arkadiusz Hiler6fe22662018-10-24 12:54:41 +030083build:tests-debian-autotools:
84 image: $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian:latest
85 stage: build
86 script:
87 - ./autogen.sh --enable-{chamelium,audio,intel,amdgpu,nouveau,tests,runner}
88 - make -j
Arkadiusz Hiler96222532018-10-24 13:28:08 +030089 - cp tests/test-list.txt autotools-test-list.txt
90 artifacts:
91 paths:
92 - autotools-test-list.txt
Arkadiusz Hiler6fe22662018-10-24 12:54:41 +030093
Arkadiusz Hiler96222532018-10-24 13:28:08 +030094#################### TEST ##########################
95
96test:ninja-test:
97 dependencies:
98 - build:tests-fedora
Arkadiusz Hilerfa6dbf82018-09-28 16:05:59 +030099 stage: test
Arkadiusz Hiler96222532018-10-24 13:28:08 +0300100 script: ninja -C build test
101
Daniel Vetterf882a542018-10-30 13:22:15 +0100102test:ninja-test-arm64:
Daniel Vetterf882a542018-10-30 13:22:15 +0100103 image: $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian-arm64:latest
104 dependencies:
105 - build:tests-debian-meson-arm64
106 stage: test
Daniel Vetter285ebfb2018-11-29 15:11:43 +0100107 script:
Daniel Vetterb55279b2018-12-05 09:08:14 +0100108 - export PKG_CONFIG_PATH=/usr/lib/aarch64-linux-gnu/pkgconfig/
Daniel Vetter285ebfb2018-11-29 15:11:43 +0100109 - env > build/envdump.txt
110 - ninja -C build test
111 artifacts:
112 paths:
113 - build
114 when: on_failure
Daniel Vetterf882a542018-10-30 13:22:15 +0100115
Arkadiusz Hiler327f40b2019-02-13 16:24:33 +0200116test:ninja-test-armhf:
117 image: $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian-armhf:latest
118 dependencies:
119 - build:tests-debian-meson-armhf
120 stage: test
121 script:
122 - export PKG_CONFIG_PATH=/usr/lib/arm-linux-gnueabihf/pkgconfig/
123 - env > build/envdump.txt
124 - ninja -C build test
125 artifacts:
126 paths:
127 - build
128 when: on_failure
129
Arkadiusz Hiler96222532018-10-24 13:28:08 +0300130test:test-list-diff:
131 dependencies:
132 - build:tests-debian-autotools
133 - build:tests-debian-meson
134 stage: test
Daniel Vetter998e0a42019-01-23 13:49:01 +0100135 script: diff <(sed "s/ /\n/g" meson-test-list.txt| grep -v 'vc4\|v3d' | sort) <(sed "s/ /\n/g" autotools-test-list.txt | sort)
Arkadiusz Hiler96222532018-10-24 13:28:08 +0300136
137################### DEPLOY #########################
Arkadiusz Hilerfa6dbf82018-09-28 16:05:59 +0300138
139pages:
Arkadiusz Hiler96222532018-10-24 13:28:08 +0300140 dependencies:
141 - build:tests-fedora
Arkadiusz Hilerfa6dbf82018-09-28 16:05:59 +0300142 stage: deploy
143 script:
144 - ninja -C build igt-gpu-tools-doc
145 - cp -r build/docs/reference/igt-gpu-tools/html public
146 artifacts:
147 paths:
148 - public
149 only:
150 - master
151
Arkadiusz Hiler96222532018-10-24 13:28:08 +0300152################# CONTAINERS #######################
153
Arkadiusz Hilerfa6dbf82018-09-28 16:05:59 +0300154containers:igt-debian:
155 stage: containers
Arkadiusz Hilerfa6dbf82018-09-28 16:05:59 +0300156 image: docker:stable
Arkadiusz Hilerb517f652018-10-30 13:19:46 +0200157 only:
158 changes:
159 - Dockerfile.debian
Daniel Vetter29ae0922018-10-31 14:32:23 +0100160 - .gitlab-ci.yml
Arkadiusz Hilerfa6dbf82018-09-28 16:05:59 +0300161 services:
162 - docker:dind
163 variables:
164 DOCKER_HOST: tcp://docker:2375
165 DOCKER_DRIVER: overlay2
166 script:
167 - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
168 - docker build -t $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian -f Dockerfile.debian .
169 - docker push $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian
170
Tomi Valkeinene55d4392019-02-13 15:14:28 +0200171containers:igt-debian-armhf:
172 stage: containers
173 image: docker:stable
174 only:
175 changes:
176 - Dockerfile.debian-armhf
177 - .gitlab-ci.yml
178 services:
179 - docker:dind
180 variables:
181 DOCKER_HOST: tcp://docker:2375
182 DOCKER_DRIVER: overlay2
183 script:
184 - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
185 - docker build -t $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian-armhf -f Dockerfile.debian-armhf .
186 - docker push $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian-armhf
187
Daniel Vetterf882a542018-10-30 13:22:15 +0100188containers:igt-debian-arm64:
189 stage: containers
190 image: docker:stable
191 only:
192 changes:
193 - Dockerfile.debian-arm64
Daniel Vetter29ae0922018-10-31 14:32:23 +0100194 - .gitlab-ci.yml
Daniel Vetterf882a542018-10-30 13:22:15 +0100195 services:
196 - docker:dind
197 variables:
198 DOCKER_HOST: tcp://docker:2375
199 DOCKER_DRIVER: overlay2
200 script:
201 - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
202 - docker build -t $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian-arm64 -f Dockerfile.debian-arm64 .
203 - docker push $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian-arm64
204
Arkadiusz Hilerfa6dbf82018-09-28 16:05:59 +0300205containers:igt-fedora:
206 stage: containers
Arkadiusz Hilerfa6dbf82018-09-28 16:05:59 +0300207 image: docker:stable
Arkadiusz Hilerb517f652018-10-30 13:19:46 +0200208 only:
209 changes:
210 - Dockerfile.fedora
Daniel Vetter29ae0922018-10-31 14:32:23 +0100211 - .gitlab-ci.yml
Arkadiusz Hilerfa6dbf82018-09-28 16:05:59 +0300212 services:
213 - docker:dind
214 variables:
215 DOCKER_HOST: tcp://docker:2375
216 DOCKER_DRIVER: overlay2
217 script:
218 - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
219 - docker build -t $CI_REGISTRY/$CI_PROJECT_PATH/igt-fedora -f Dockerfile.fedora .
220 - docker push $CI_REGISTRY/$CI_PROJECT_PATH/igt-fedora