1.build-tmpl: &build
2  stage: build
3  image: registry.gitlab.com/xen-project/xen/${CONTAINER}
4  script:
5    - ./automation/scripts/build 2>&1 | tee build.log
6  artifacts:
7    paths:
8      - binaries/
9      - xen-config
10      - '*.log'
11    when: always
12  except:
13    - master
14    - smoke
15    - /^coverity-tested\/.*/
16    - /^stable-.*/
17
18.gcc-tmpl:
19  variabes: &gcc
20    CC: gcc
21    CXX: g++
22
23.clang-tmpl:
24  variables: &clang
25    CC: clang
26    CXX: clang++
27    clang: y
28
29.clang-8-tmpl:
30  variables: &clang-8
31    CC: clang-8
32    CXX: clang++-8
33    LD: ld.lld-8
34    clang: y
35
36.x86-64-build-tmpl:
37  <<: *build
38  variables:
39    XEN_TARGET_ARCH: x86_64
40  tags:
41    - x86_64
42
43.x86-64-build:
44  extends: .x86-64-build-tmpl
45  variables:
46    debug: n
47
48.x86-64-build-debug:
49  extends: .x86-64-build-tmpl
50  variables:
51    debug: y
52
53.x86-32-build-tmpl:
54  <<: *build
55  variables:
56    XEN_TARGET_ARCH: x86_32
57  tags:
58    - x86_32
59
60.x86-32-build:
61  extends: .x86-32-build-tmpl
62  variables:
63    debug: n
64
65.x86-32-build-debug:
66  extends: .x86-32-build-tmpl
67  variables:
68    debug: y
69
70.gcc-x86-64-build:
71  extends: .x86-64-build
72  variables:
73    <<: *gcc
74
75.gcc-x86-64-build-debug:
76  extends: .x86-64-build-debug
77  variables:
78    <<: *gcc
79
80.gcc-x86-32-build:
81  extends: .x86-32-build
82  variables:
83    <<: *gcc
84
85.gcc-x86-32-build-debug:
86  extends: .x86-32-build-debug
87  variables:
88    <<: *gcc
89
90.clang-x86-64-build:
91  extends: .x86-64-build
92  variables:
93    <<: *clang
94
95.clang-x86-64-build-debug:
96  extends: .x86-64-build-debug
97  variables:
98    <<: *clang
99
100.clang-8-x86-64-build:
101  extends: .x86-64-build
102  variables:
103    <<: *clang-8
104
105.clang-8-x86-64-build-debug:
106  extends: .x86-64-build-debug
107  variables:
108    <<: *clang-8
109
110.clang-x86-32-build:
111  extends: .x86-32-build
112  variables:
113    <<: *clang
114
115.clang-x86-32-build-debug:
116  extends: .x86-32-build-debug
117  variables:
118    <<: *clang
119
120.arm64-build-tmpl:
121  <<: *build
122  variables:
123    XEN_TARGET_ARCH: arm64
124  tags:
125    - arm64
126
127.arm64-build:
128  extends: .arm64-build-tmpl
129  variables:
130    debug: n
131
132.arm64-build-debug:
133  extends: .arm64-build-tmpl
134  variables:
135    debug: y
136
137.gcc-arm64-build:
138  extends: .arm64-build
139  variables:
140    <<: *gcc
141
142.gcc-arm64-build-debug:
143  extends: .arm64-build-debug
144  variables:
145    <<: *gcc
146
147# Jobs below this line
148
149archlinux-gcc:
150  extends: .gcc-x86-64-build
151  variables:
152    CONTAINER: archlinux:current
153
154archlinux-gcc-debug:
155  extends: .gcc-x86-64-build-debug
156  variables:
157    CONTAINER: archlinux:current
158
159centos-7-2-gcc:
160  extends: .gcc-x86-64-build
161  variables:
162    CONTAINER: centos:7.2
163
164centos-7-2-gcc-debug:
165  extends: .gcc-x86-64-build-debug
166  variables:
167    CONTAINER: centos:7.2
168
169centos-7-gcc:
170  extends: .gcc-x86-64-build
171  variables:
172    CONTAINER: centos:7
173
174centos-7-gcc-debug:
175  extends: .gcc-x86-64-build-debug
176  variables:
177    CONTAINER: centos:7
178
179centos-6-gcc:
180  extends: .gcc-x86-64-build
181  variables:
182    CONTAINER: centos:6
183
184centos-6-gcc-debug:
185  extends: .gcc-x86-64-build-debug
186  variables:
187    CONTAINER: centos:6
188
189debian-jessie-clang:
190  extends: .clang-x86-64-build
191  variables:
192    CONTAINER: debian:jessie
193
194debian-jessie-clang-debug:
195  extends: .clang-x86-64-build-debug
196  variables:
197    CONTAINER: debian:jessie
198
199debian-jessie-gcc:
200  extends: .gcc-x86-64-build
201  variables:
202    CONTAINER: debian:jessie
203
204debian-jessie-gcc-debug:
205  extends: .gcc-x86-64-build-debug
206  variables:
207    CONTAINER: debian:jessie
208
209debian-jessie-32-clang:
210  extends: .clang-x86-32-build
211  variables:
212    CONTAINER: debian:jessie-i386
213
214debian-jessie-32-clang-debug:
215  extends: .clang-x86-32-build-debug
216  variables:
217    CONTAINER: debian:jessie-i386
218
219debian-jessie-32-gcc:
220  extends: .gcc-x86-32-build
221  variables:
222    CONTAINER: debian:jessie-i386
223
224debian-jessie-32-gcc-debug:
225  extends: .gcc-x86-32-build-debug
226  variables:
227    CONTAINER: debian:jessie-i386
228
229debian-stretch-clang:
230  extends: .clang-x86-64-build
231  variables:
232    CONTAINER: debian:stretch
233
234debian-stretch-clang-debug:
235  extends: .clang-x86-64-build-debug
236  variables:
237    CONTAINER: debian:stretch
238
239debian-stretch-clang-8:
240  extends: .clang-8-x86-64-build
241  variables:
242    CONTAINER: debian:stretch
243
244debian-stretch-clang-8-debug:
245  extends: .clang-8-x86-64-build-debug
246  variables:
247    CONTAINER: debian:stretch
248
249debian-stretch-gcc:
250  extends: .gcc-x86-64-build
251  variables:
252    CONTAINER: debian:stretch
253
254debian-stretch-gcc-debug:
255  extends: .gcc-x86-64-build-debug
256  variables:
257    CONTAINER: debian:stretch
258
259debian-stretch-32-clang:
260  extends: .clang-x86-32-build
261  variables:
262    CONTAINER: debian:stretch-i386
263
264debian-stretch-32-clang-debug:
265  extends: .clang-x86-32-build-debug
266  variables:
267    CONTAINER: debian:stretch-i386
268
269debian-stretch-32-gcc:
270  extends: .gcc-x86-32-build
271  variables:
272    CONTAINER: debian:stretch-i386
273
274debian-stretch-32-gcc-debug:
275  extends: .gcc-x86-32-build-debug
276  variables:
277    CONTAINER: debian:stretch-i386
278
279debian-unstable-clang:
280  extends: .clang-x86-64-build
281  variables:
282    CONTAINER: debian:unstable
283
284debian-unstable-clang-debug:
285  extends: .clang-x86-64-build-debug
286  variables:
287    CONTAINER: debian:unstable
288
289debian-unstable-clang-8:
290  extends: .clang-8-x86-64-build
291  variables:
292    CONTAINER: debian:unstable
293
294debian-unstable-clang-8-debug:
295  extends: .clang-8-x86-64-build-debug
296  variables:
297    CONTAINER: debian:unstable
298
299debian-unstable-gcc:
300  extends: .gcc-x86-64-build
301  variables:
302    CONTAINER: debian:unstable
303
304debian-unstable-gcc-debug:
305  extends: .gcc-x86-64-build-debug
306  variables:
307    CONTAINER: debian:unstable
308
309debian-unstable-gcc-randconfig:
310  extends: .gcc-x86-64-build
311  variables:
312    CONTAINER: debian:unstable
313    RANDCONFIG: y
314
315debian-unstable-gcc-debug-randconfig:
316  extends: .gcc-x86-64-build-debug
317  variables:
318    CONTAINER: debian:unstable
319    RANDCONFIG: y
320
321debian-unstable-32-clang:
322  extends: .clang-x86-32-build
323  variables:
324    CONTAINER: debian:unstable-i386
325
326debian-unstable-32-clang-debug:
327  extends: .clang-x86-32-build-debug
328  variables:
329    CONTAINER: debian:unstable-i386
330
331debian-unstable-32-gcc:
332  extends: .gcc-x86-32-build
333  variables:
334    CONTAINER: debian:unstable-i386
335
336debian-unstable-32-gcc-debug:
337  extends: .gcc-x86-32-build-debug
338  variables:
339    CONTAINER: debian:unstable-i386
340
341fedora-gcc:
342  extends: .gcc-x86-64-build
343  variables:
344    CONTAINER: fedora:29
345
346fedora-gcc-debug:
347  extends: .gcc-x86-64-build-debug
348  variables:
349    CONTAINER: fedora:29
350
351# Ubuntu Trusty's Clang is 3.4 while Xen requires 3.5
352
353ubuntu-trusty-gcc:
354  extends: .gcc-x86-64-build
355  variables:
356    CONTAINER: ubuntu:trusty
357
358ubuntu-trusty-gcc-debug:
359  extends: .gcc-x86-64-build-debug
360  variables:
361    CONTAINER: ubuntu:trusty
362
363ubuntu-xenial-clang:
364  extends: .clang-x86-64-build
365  variables:
366    CONTAINER: ubuntu:xenial
367
368ubuntu-xenial-clang-debug:
369  extends: .clang-x86-64-build-debug
370  variables:
371    CONTAINER: ubuntu:xenial
372
373ubuntu-xenial-gcc:
374  extends: .gcc-x86-64-build
375  variables:
376    CONTAINER: ubuntu:xenial
377
378ubuntu-xenial-gcc-debug:
379  extends: .gcc-x86-64-build-debug
380  variables:
381    CONTAINER: ubuntu:xenial
382
383ubuntu-bionic-clang:
384  extends: .clang-x86-64-build
385  variables:
386    CONTAINER: ubuntu:bionic
387
388ubuntu-bionic-clang-debug:
389  extends: .clang-x86-64-build-debug
390  variables:
391    CONTAINER: ubuntu:bionic
392
393ubuntu-bionic-gcc:
394  extends: .gcc-x86-64-build
395  variables:
396    CONTAINER: ubuntu:bionic
397
398ubuntu-bionic-gcc-debug:
399  extends: .gcc-x86-64-build-debug
400  variables:
401    CONTAINER: ubuntu:bionic
402
403opensuse-leap-clang:
404  extends: .clang-x86-64-build
405  variables:
406    CONTAINER: suse:opensuse-leap
407
408opensuse-leap-clang-debug:
409  extends: .clang-x86-64-build-debug
410  variables:
411    CONTAINER: suse:opensuse-leap
412
413opensuse-leap-gcc:
414  extends: .gcc-x86-64-build
415  variables:
416    CONTAINER: suse:opensuse-leap
417
418opensuse-leap-gcc-debug:
419  extends: .gcc-x86-64-build-debug
420  variables:
421    CONTAINER: suse:opensuse-leap
422
423# Arm builds
424
425debian-unstable-gcc-arm64:
426  extends: .gcc-arm64-build
427  variables:
428    CONTAINER: debian:unstable-arm64v8
429
430debian-unstable-gcc-debug-arm64:
431  extends: .gcc-arm64-build-debug
432  variables:
433    CONTAINER: debian:unstable-arm64v8
434
435debian-unstable-gcc-arm64-randconfig:
436  extends: .gcc-arm64-build
437  variables:
438    CONTAINER: debian:unstable-arm64v8
439    RANDCONFIG: y
440
441debian-unstable-gcc-debug-arm64-randconfig:
442  extends: .gcc-arm64-build-debug
443  variables:
444    CONTAINER: debian:unstable-arm64v8
445    RANDCONFIG: y
446
447