1 # The CI jobs defined here require GitLab runners installed and
2 # registered on machines that match their operating system names,
3 # versions and architectures. This is in contrast to the other CI
4 # jobs that are intended to run on GitLab's "shared" runners.
6 # Different than the default approach on "shared" runners, based on
7 # containers, the custom runners have no such *requirement*, as those
8 # jobs should be capable of running on operating systems with no
9 # compatible container implementation, or no support from
10 # gitlab-runner. To avoid problems that gitlab-runner can cause while
11 # reusing the GIT repository, let's enable the clone strategy, which
12 # guarantees a fresh repository on each job run.
16 # All ubuntu-18.04 jobs should run successfully in an environment
17 # setup by the scripts/ci/setup/build-environment.yml task
18 # "Install basic packages to build QEMU on Ubuntu 18.04/20.04"
19 ubuntu-18.04-s390x-all-linux-static:
26 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
27 - if: "$S390X_RUNNER_AVAILABLE"
29 # --disable-libssh is needed because of https://bugs.launchpad.net/qemu/+bug/1838763
30 # --disable-glusterfs is needed because there's no static version of those libs in distro supplied packages
33 - ../configure --enable-debug --static --disable-system --disable-glusterfs --disable-libssh
34 - make --output-sync -j`nproc`
35 - make --output-sync -j`nproc` check V=1
36 - make --output-sync -j`nproc` check-tcg V=1
38 ubuntu-18.04-s390x-all:
45 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
46 - if: "$S390X_RUNNER_AVAILABLE"
50 - ../configure --disable-libssh
51 - make --output-sync -j`nproc`
52 - make --output-sync -j`nproc` check V=1
54 ubuntu-18.04-s390x-alldbg:
61 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
64 - if: "$S390X_RUNNER_AVAILABLE"
70 - ../configure --enable-debug --disable-libssh
72 - make --output-sync -j`nproc`
73 - make --output-sync -j`nproc` check V=1
75 ubuntu-18.04-s390x-clang:
82 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
85 - if: "$S390X_RUNNER_AVAILABLE"
91 - ../configure --disable-libssh --cc=clang --cxx=clang++ --enable-sanitizers
92 - make --output-sync -j`nproc`
93 - make --output-sync -j`nproc` check V=1
95 ubuntu-18.04-s390x-tci:
102 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
105 - if: "$S390X_RUNNER_AVAILABLE"
111 - ../configure --disable-libssh --enable-tcg-interpreter
112 - make --output-sync -j`nproc`
114 ubuntu-18.04-s390x-notcg:
121 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
124 - if: "$S390X_RUNNER_AVAILABLE"
130 - ../configure --disable-libssh --disable-tcg
131 - make --output-sync -j`nproc`
132 - make --output-sync -j`nproc` check V=1
134 # All ubuntu-20.04 jobs should run successfully in an environment
135 # setup by the scripts/ci/setup/qemu/build-environment.yml task
136 # "Install basic packages to build QEMU on Ubuntu 18.04/20.04"
137 ubuntu-20.04-aarch64-all-linux-static:
144 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
145 - if: "$AARCH64_RUNNER_AVAILABLE"
147 # --disable-libssh is needed because of https://bugs.launchpad.net/qemu/+bug/1838763
148 # --disable-glusterfs is needed because there's no static version of those libs in distro supplied packages
151 - ../configure --enable-debug --static --disable-system --disable-glusterfs --disable-libssh
152 - make --output-sync -j`nproc`
153 - make --output-sync -j`nproc` check V=1
154 - make --output-sync -j`nproc` check-tcg V=1
156 ubuntu-20.04-aarch64-all:
163 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
166 - if: "$AARCH64_RUNNER_AVAILABLE"
172 - ../configure --disable-libssh
173 - make --output-sync -j`nproc`
174 - make --output-sync -j`nproc` check V=1
176 ubuntu-20.04-aarch64-alldbg:
183 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
184 - if: "$AARCH64_RUNNER_AVAILABLE"
188 - ../configure --enable-debug --disable-libssh
190 - make --output-sync -j`nproc`
191 - make --output-sync -j`nproc` check V=1
193 ubuntu-20.04-aarch64-clang:
200 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
203 - if: "$AARCH64_RUNNER_AVAILABLE"
209 - ../configure --disable-libssh --cc=clang-10 --cxx=clang++-10 --enable-sanitizers
210 - make --output-sync -j`nproc`
211 - make --output-sync -j`nproc` check V=1
213 ubuntu-20.04-aarch64-tci:
220 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
223 - if: "$AARCH64_RUNNER_AVAILABLE"
229 - ../configure --disable-libssh --enable-tcg-interpreter
230 - make --output-sync -j`nproc`
232 ubuntu-20.04-aarch64-notcg:
239 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
242 - if: "$AARCH64_RUNNER_AVAILABLE"
248 - ../configure --disable-libssh --disable-tcg
249 - make --output-sync -j`nproc`
250 - make --output-sync -j`nproc` check V=1