blob: 8087bd398f3d3eb6f5a500e6c22a857cecfca442 [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
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
36 - meson -Dlibunwind=false build
37 - 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
Arkadiusz Hiler96222532018-10-24 13:28:08 +030049build:tests-debian-meson:
Arkadiusz Hiler26494662018-10-24 12:27:04 +030050 image: $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian:latest
Arkadiusz Hilerfa6dbf82018-09-28 16:05:59 +030051 stage: build
52 script:
53 - meson $MESON_OPTIONS build
54 - ninja -C build
Arkadiusz Hiler96222532018-10-24 13:28:08 +030055 - cp build/tests/test-list.txt meson-test-list.txt
56 artifacts:
57 paths:
58 - meson-test-list.txt
59
Daniel Vetterf882a542018-10-30 13:22:15 +010060build:tests-debian-meson-arm64:
61 image: $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian-arm64:latest
62 stage: build
63 script:
Daniel Vetterb55279b2018-12-05 09:08:14 +010064 - export PKG_CONFIG_PATH=/usr/lib/aarch64-linux-gnu/pkgconfig/
65 - meson --cross-file meson-cross-arm64.txt build
Daniel Vetterf882a542018-10-30 13:22:15 +010066 - ninja -C build
67 artifacts:
68 paths:
69 - build
Arkadiusz Hilerfa6dbf82018-09-28 16:05:59 +030070
Arkadiusz Hiler6fe22662018-10-24 12:54:41 +030071build:tests-debian-autotools:
72 image: $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian:latest
73 stage: build
74 script:
75 - ./autogen.sh --enable-{chamelium,audio,intel,amdgpu,nouveau,tests,runner}
76 - make -j
Arkadiusz Hiler96222532018-10-24 13:28:08 +030077 - cp tests/test-list.txt autotools-test-list.txt
78 artifacts:
79 paths:
80 - autotools-test-list.txt
Arkadiusz Hiler6fe22662018-10-24 12:54:41 +030081
Arkadiusz Hiler96222532018-10-24 13:28:08 +030082#################### TEST ##########################
83
84test:ninja-test:
85 dependencies:
86 - build:tests-fedora
Arkadiusz Hilerfa6dbf82018-09-28 16:05:59 +030087 stage: test
Arkadiusz Hiler96222532018-10-24 13:28:08 +030088 script: ninja -C build test
89
Daniel Vetterf882a542018-10-30 13:22:15 +010090test:ninja-test-arm64:
Daniel Vetterf882a542018-10-30 13:22:15 +010091 image: $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian-arm64:latest
92 dependencies:
93 - build:tests-debian-meson-arm64
94 stage: test
Daniel Vetter285ebfb2018-11-29 15:11:43 +010095 script:
Daniel Vetterb55279b2018-12-05 09:08:14 +010096 - export PKG_CONFIG_PATH=/usr/lib/aarch64-linux-gnu/pkgconfig/
Daniel Vetter285ebfb2018-11-29 15:11:43 +010097 - env > build/envdump.txt
98 - ninja -C build test
99 artifacts:
100 paths:
101 - build
102 when: on_failure
Daniel Vetterf882a542018-10-30 13:22:15 +0100103
Arkadiusz Hiler96222532018-10-24 13:28:08 +0300104test:test-list-diff:
105 dependencies:
106 - build:tests-debian-autotools
107 - build:tests-debian-meson
108 stage: test
109 script: diff <(sed "s/ /\n/g" meson-test-list.txt| sort) <(sed "s/ /\n/g" autotools-test-list.txt | sort)
110
111################### DEPLOY #########################
Arkadiusz Hilerfa6dbf82018-09-28 16:05:59 +0300112
113pages:
Arkadiusz Hiler96222532018-10-24 13:28:08 +0300114 dependencies:
115 - build:tests-fedora
Arkadiusz Hilerfa6dbf82018-09-28 16:05:59 +0300116 stage: deploy
117 script:
118 - ninja -C build igt-gpu-tools-doc
119 - cp -r build/docs/reference/igt-gpu-tools/html public
120 artifacts:
121 paths:
122 - public
123 only:
124 - master
125
Arkadiusz Hiler96222532018-10-24 13:28:08 +0300126################# CONTAINERS #######################
127
Arkadiusz Hilerfa6dbf82018-09-28 16:05:59 +0300128containers:igt-debian:
129 stage: containers
Arkadiusz Hilerfa6dbf82018-09-28 16:05:59 +0300130 image: docker:stable
Arkadiusz Hilerb517f652018-10-30 13:19:46 +0200131 only:
132 changes:
133 - Dockerfile.debian
Daniel Vetter29ae0922018-10-31 14:32:23 +0100134 - .gitlab-ci.yml
Arkadiusz Hilerfa6dbf82018-09-28 16:05:59 +0300135 services:
136 - docker:dind
137 variables:
138 DOCKER_HOST: tcp://docker:2375
139 DOCKER_DRIVER: overlay2
140 script:
141 - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
142 - docker build -t $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian -f Dockerfile.debian .
143 - docker push $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian
144
Daniel Vetterf882a542018-10-30 13:22:15 +0100145containers:igt-debian-arm64:
146 stage: containers
147 image: docker:stable
148 only:
149 changes:
150 - Dockerfile.debian-arm64
Daniel Vetter29ae0922018-10-31 14:32:23 +0100151 - .gitlab-ci.yml
Daniel Vetterf882a542018-10-30 13:22:15 +0100152 services:
153 - docker:dind
154 variables:
155 DOCKER_HOST: tcp://docker:2375
156 DOCKER_DRIVER: overlay2
157 script:
158 - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
159 - docker build -t $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian-arm64 -f Dockerfile.debian-arm64 .
160 - docker push $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian-arm64
161
Arkadiusz Hilerfa6dbf82018-09-28 16:05:59 +0300162containers:igt-fedora:
163 stage: containers
Arkadiusz Hilerfa6dbf82018-09-28 16:05:59 +0300164 image: docker:stable
Arkadiusz Hilerb517f652018-10-30 13:19:46 +0200165 only:
166 changes:
167 - Dockerfile.fedora
Daniel Vetter29ae0922018-10-31 14:32:23 +0100168 - .gitlab-ci.yml
Arkadiusz Hilerfa6dbf82018-09-28 16:05:59 +0300169 services:
170 - docker:dind
171 variables:
172 DOCKER_HOST: tcp://docker:2375
173 DOCKER_DRIVER: overlay2
174 script:
175 - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
176 - docker build -t $CI_REGISTRY/$CI_PROJECT_PATH/igt-fedora -f Dockerfile.fedora .
177 - docker push $CI_REGISTRY/$CI_PROJECT_PATH/igt-fedora