1b38a04f7SCleber Rosa# The CI jobs defined here require GitLab runners installed and
2b38a04f7SCleber Rosa# registered on machines that match their operating system names,
3b38a04f7SCleber Rosa# versions and architectures.  This is in contrast to the other CI
4b38a04f7SCleber Rosa# jobs that are intended to run on GitLab's "shared" runners.
5b38a04f7SCleber Rosa
6b38a04f7SCleber Rosa# Different than the default approach on "shared" runners, based on
7b38a04f7SCleber Rosa# containers, the custom runners have no such *requirement*, as those
8b38a04f7SCleber Rosa# jobs should be capable of running on operating systems with no
9b38a04f7SCleber Rosa# compatible container implementation, or no support from
10b38a04f7SCleber Rosa# gitlab-runner.  To avoid problems that gitlab-runner can cause while
11b38a04f7SCleber Rosa# reusing the GIT repository, let's enable the clone strategy, which
12b38a04f7SCleber Rosa# guarantees a fresh repository on each job run.
13b38a04f7SCleber Rosavariables:
14b38a04f7SCleber Rosa  GIT_STRATEGY: clone
15*4799c210SCleber Rosa
16*4799c210SCleber Rosa# All ubuntu-18.04 jobs should run successfully in an environment
17*4799c210SCleber Rosa# setup by the scripts/ci/setup/build-environment.yml task
18*4799c210SCleber Rosa# "Install basic packages to build QEMU on Ubuntu 18.04/20.04"
19*4799c210SCleber Rosaubuntu-18.04-s390x-all-linux-static:
20*4799c210SCleber Rosa allow_failure: true
21*4799c210SCleber Rosa needs: []
22*4799c210SCleber Rosa stage: build
23*4799c210SCleber Rosa tags:
24*4799c210SCleber Rosa - ubuntu_18.04
25*4799c210SCleber Rosa - s390x
26*4799c210SCleber Rosa rules:
27*4799c210SCleber Rosa - if: '$CI_COMMIT_BRANCH =~ /^staging/'
28*4799c210SCleber Rosa script:
29*4799c210SCleber Rosa # --disable-libssh is needed because of https://bugs.launchpad.net/qemu/+bug/1838763
30*4799c210SCleber Rosa # --disable-glusterfs is needed because there's no static version of those libs in distro supplied packages
31*4799c210SCleber Rosa - mkdir build
32*4799c210SCleber Rosa - cd build
33*4799c210SCleber Rosa - ../configure --enable-debug --static --disable-system --disable-glusterfs --disable-libssh
34*4799c210SCleber Rosa - make --output-sync -j`nproc`
35*4799c210SCleber Rosa - make --output-sync -j`nproc` check V=1
36*4799c210SCleber Rosa - make --output-sync -j`nproc` check-tcg V=1
37*4799c210SCleber Rosa
38*4799c210SCleber Rosaubuntu-18.04-s390x-all:
39*4799c210SCleber Rosa allow_failure: true
40*4799c210SCleber Rosa needs: []
41*4799c210SCleber Rosa stage: build
42*4799c210SCleber Rosa tags:
43*4799c210SCleber Rosa - ubuntu_18.04
44*4799c210SCleber Rosa - s390x
45*4799c210SCleber Rosa rules:
46*4799c210SCleber Rosa - if: '$CI_COMMIT_BRANCH =~ /^staging/'
47*4799c210SCleber Rosa script:
48*4799c210SCleber Rosa - mkdir build
49*4799c210SCleber Rosa - cd build
50*4799c210SCleber Rosa - ../configure --disable-libssh
51*4799c210SCleber Rosa - make --output-sync -j`nproc`
52*4799c210SCleber Rosa - make --output-sync -j`nproc` check V=1
53*4799c210SCleber Rosa
54*4799c210SCleber Rosaubuntu-18.04-s390x-alldbg:
55*4799c210SCleber Rosa allow_failure: true
56*4799c210SCleber Rosa needs: []
57*4799c210SCleber Rosa stage: build
58*4799c210SCleber Rosa tags:
59*4799c210SCleber Rosa - ubuntu_18.04
60*4799c210SCleber Rosa - s390x
61*4799c210SCleber Rosa rules:
62*4799c210SCleber Rosa - if: '$CI_COMMIT_BRANCH =~ /^staging/'
63*4799c210SCleber Rosa script:
64*4799c210SCleber Rosa - mkdir build
65*4799c210SCleber Rosa - cd build
66*4799c210SCleber Rosa - ../configure --enable-debug --disable-libssh
67*4799c210SCleber Rosa - make clean
68*4799c210SCleber Rosa - make --output-sync -j`nproc`
69*4799c210SCleber Rosa - make --output-sync -j`nproc` check V=1
70*4799c210SCleber Rosa
71*4799c210SCleber Rosaubuntu-18.04-s390x-clang:
72*4799c210SCleber Rosa allow_failure: true
73*4799c210SCleber Rosa needs: []
74*4799c210SCleber Rosa stage: build
75*4799c210SCleber Rosa tags:
76*4799c210SCleber Rosa - ubuntu_18.04
77*4799c210SCleber Rosa - s390x
78*4799c210SCleber Rosa rules:
79*4799c210SCleber Rosa - if: '$CI_COMMIT_BRANCH =~ /^staging/'
80*4799c210SCleber Rosa   when: manual
81*4799c210SCleber Rosa script:
82*4799c210SCleber Rosa - mkdir build
83*4799c210SCleber Rosa - cd build
84*4799c210SCleber Rosa - ../configure --disable-libssh --cc=clang --cxx=clang++ --enable-sanitizers
85*4799c210SCleber Rosa - make --output-sync -j`nproc`
86*4799c210SCleber Rosa - make --output-sync -j`nproc` check V=1
87*4799c210SCleber Rosa
88*4799c210SCleber Rosaubuntu-18.04-s390x-tci:
89*4799c210SCleber Rosa allow_failure: true
90*4799c210SCleber Rosa needs: []
91*4799c210SCleber Rosa stage: build
92*4799c210SCleber Rosa tags:
93*4799c210SCleber Rosa - ubuntu_18.04
94*4799c210SCleber Rosa - s390x
95*4799c210SCleber Rosa rules:
96*4799c210SCleber Rosa - if: '$CI_COMMIT_BRANCH =~ /^staging/'
97*4799c210SCleber Rosa script:
98*4799c210SCleber Rosa - mkdir build
99*4799c210SCleber Rosa - cd build
100*4799c210SCleber Rosa - ../configure --disable-libssh --enable-tcg-interpreter
101*4799c210SCleber Rosa - make --output-sync -j`nproc`
102*4799c210SCleber Rosa
103*4799c210SCleber Rosaubuntu-18.04-s390x-notcg:
104*4799c210SCleber Rosa allow_failure: true
105*4799c210SCleber Rosa needs: []
106*4799c210SCleber Rosa stage: build
107*4799c210SCleber Rosa tags:
108*4799c210SCleber Rosa - ubuntu_18.04
109*4799c210SCleber Rosa - s390x
110*4799c210SCleber Rosa rules:
111*4799c210SCleber Rosa - if: '$CI_COMMIT_BRANCH =~ /^staging/'
112*4799c210SCleber Rosa   when: manual
113*4799c210SCleber Rosa script:
114*4799c210SCleber Rosa - mkdir build
115*4799c210SCleber Rosa - cd build
116*4799c210SCleber Rosa - ../configure --disable-libssh --disable-tcg
117*4799c210SCleber Rosa - make --output-sync -j`nproc`
118*4799c210SCleber Rosa - make --output-sync -j`nproc` check V=1
119*4799c210SCleber Rosa
120*4799c210SCleber Rosa# All ubuntu-20.04 jobs should run successfully in an environment
121*4799c210SCleber Rosa# setup by the scripts/ci/setup/qemu/build-environment.yml task
122*4799c210SCleber Rosa# "Install basic packages to build QEMU on Ubuntu 18.04/20.04"
123*4799c210SCleber Rosaubuntu-20.04-aarch64-all-linux-static:
124*4799c210SCleber Rosa allow_failure: true
125*4799c210SCleber Rosa needs: []
126*4799c210SCleber Rosa stage: build
127*4799c210SCleber Rosa tags:
128*4799c210SCleber Rosa - ubuntu_20.04
129*4799c210SCleber Rosa - aarch64
130*4799c210SCleber Rosa rules:
131*4799c210SCleber Rosa - if: '$CI_COMMIT_BRANCH =~ /^staging/'
132*4799c210SCleber Rosa script:
133*4799c210SCleber Rosa # --disable-libssh is needed because of https://bugs.launchpad.net/qemu/+bug/1838763
134*4799c210SCleber Rosa # --disable-glusterfs is needed because there's no static version of those libs in distro supplied packages
135*4799c210SCleber Rosa - mkdir build
136*4799c210SCleber Rosa - cd build
137*4799c210SCleber Rosa - ../configure --enable-debug --static --disable-system --disable-glusterfs --disable-libssh
138*4799c210SCleber Rosa - make --output-sync -j`nproc`
139*4799c210SCleber Rosa - make --output-sync -j`nproc` check V=1
140*4799c210SCleber Rosa - make --output-sync -j`nproc` check-tcg V=1
141*4799c210SCleber Rosa
142*4799c210SCleber Rosaubuntu-20.04-aarch64-all:
143*4799c210SCleber Rosa allow_failure: true
144*4799c210SCleber Rosa needs: []
145*4799c210SCleber Rosa stage: build
146*4799c210SCleber Rosa tags:
147*4799c210SCleber Rosa - ubuntu_20.04
148*4799c210SCleber Rosa - aarch64
149*4799c210SCleber Rosa rules:
150*4799c210SCleber Rosa - if: '$CI_COMMIT_BRANCH =~ /^staging/'
151*4799c210SCleber Rosa script:
152*4799c210SCleber Rosa - mkdir build
153*4799c210SCleber Rosa - cd build
154*4799c210SCleber Rosa - ../configure --disable-libssh
155*4799c210SCleber Rosa - make --output-sync -j`nproc`
156*4799c210SCleber Rosa - make --output-sync -j`nproc` check V=1
157*4799c210SCleber Rosa
158*4799c210SCleber Rosaubuntu-20.04-aarch64-alldbg:
159*4799c210SCleber Rosa allow_failure: true
160*4799c210SCleber Rosa needs: []
161*4799c210SCleber Rosa stage: build
162*4799c210SCleber Rosa tags:
163*4799c210SCleber Rosa - ubuntu_20.04
164*4799c210SCleber Rosa - aarch64
165*4799c210SCleber Rosa rules:
166*4799c210SCleber Rosa - if: '$CI_COMMIT_BRANCH =~ /^staging/'
167*4799c210SCleber Rosa script:
168*4799c210SCleber Rosa - mkdir build
169*4799c210SCleber Rosa - cd build
170*4799c210SCleber Rosa - ../configure --enable-debug --disable-libssh
171*4799c210SCleber Rosa - make clean
172*4799c210SCleber Rosa - make --output-sync -j`nproc`
173*4799c210SCleber Rosa - make --output-sync -j`nproc` check V=1
174*4799c210SCleber Rosa
175*4799c210SCleber Rosaubuntu-20.04-aarch64-clang:
176*4799c210SCleber Rosa allow_failure: true
177*4799c210SCleber Rosa needs: []
178*4799c210SCleber Rosa stage: build
179*4799c210SCleber Rosa tags:
180*4799c210SCleber Rosa - ubuntu_20.04
181*4799c210SCleber Rosa - aarch64
182*4799c210SCleber Rosa rules:
183*4799c210SCleber Rosa - if: '$CI_COMMIT_BRANCH =~ /^staging/'
184*4799c210SCleber Rosa   when: manual
185*4799c210SCleber Rosa script:
186*4799c210SCleber Rosa - mkdir build
187*4799c210SCleber Rosa - cd build
188*4799c210SCleber Rosa - ../configure --disable-libssh --cc=clang-10 --cxx=clang++-10 --enable-sanitizers
189*4799c210SCleber Rosa - make --output-sync -j`nproc`
190*4799c210SCleber Rosa - make --output-sync -j`nproc` check V=1
191*4799c210SCleber Rosa
192*4799c210SCleber Rosaubuntu-20.04-aarch64-tci:
193*4799c210SCleber Rosa allow_failure: true
194*4799c210SCleber Rosa needs: []
195*4799c210SCleber Rosa stage: build
196*4799c210SCleber Rosa tags:
197*4799c210SCleber Rosa - ubuntu_20.04
198*4799c210SCleber Rosa - aarch64
199*4799c210SCleber Rosa rules:
200*4799c210SCleber Rosa - if: '$CI_COMMIT_BRANCH =~ /^staging/'
201*4799c210SCleber Rosa script:
202*4799c210SCleber Rosa - mkdir build
203*4799c210SCleber Rosa - cd build
204*4799c210SCleber Rosa - ../configure --disable-libssh --enable-tcg-interpreter
205*4799c210SCleber Rosa - make --output-sync -j`nproc`
206*4799c210SCleber Rosa
207*4799c210SCleber Rosaubuntu-20.04-aarch64-notcg:
208*4799c210SCleber Rosa allow_failure: true
209*4799c210SCleber Rosa needs: []
210*4799c210SCleber Rosa stage: build
211*4799c210SCleber Rosa tags:
212*4799c210SCleber Rosa - ubuntu_20.04
213*4799c210SCleber Rosa - aarch64
214*4799c210SCleber Rosa rules:
215*4799c210SCleber Rosa - if: '$CI_COMMIT_BRANCH =~ /^staging/'
216*4799c210SCleber Rosa   when: manual
217*4799c210SCleber Rosa script:
218*4799c210SCleber Rosa - mkdir build
219*4799c210SCleber Rosa - cd build
220*4799c210SCleber Rosa - ../configure --disable-libssh --disable-tcg
221*4799c210SCleber Rosa - make --output-sync -j`nproc`
222*4799c210SCleber Rosa - make --output-sync -j`nproc` check V=1
223