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:
27 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
28 - if: "$S390X_RUNNER_AVAILABLE"
30 # --disable-libssh is needed because of https://bugs.launchpad.net/qemu/+bug/1838763
31 # --disable-glusterfs is needed because there's no static version of those libs in distro supplied packages
34 - ../configure --enable-debug --static --disable-system --disable-glusterfs --disable-libssh
35 - make --output-sync -j`nproc`
36 - make --output-sync -j`nproc` check V=1
37 - make --output-sync -j`nproc` check-tcg V=1
39 ubuntu-18.04-s390x-all:
47 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
48 - if: "$S390X_RUNNER_AVAILABLE"
52 - ../configure --disable-libssh
53 - make --output-sync -j`nproc`
54 - make --output-sync -j`nproc` check V=1
56 ubuntu-18.04-s390x-alldbg:
64 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
65 - if: "$S390X_RUNNER_AVAILABLE"
69 - ../configure --enable-debug --disable-libssh
71 - make --output-sync -j`nproc`
72 - make --output-sync -j`nproc` check V=1
74 ubuntu-18.04-s390x-clang:
82 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
84 - if: "$S390X_RUNNER_AVAILABLE"
89 - ../configure --disable-libssh --cc=clang --cxx=clang++ --enable-sanitizers
90 - make --output-sync -j`nproc`
91 - make --output-sync -j`nproc` check V=1
93 ubuntu-18.04-s390x-tci:
101 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
102 - if: "$S390X_RUNNER_AVAILABLE"
106 - ../configure --disable-libssh --enable-tcg-interpreter
107 - make --output-sync -j`nproc`
109 ubuntu-18.04-s390x-notcg:
117 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
119 - if: "$S390X_RUNNER_AVAILABLE"
124 - ../configure --disable-libssh --disable-tcg
125 - make --output-sync -j`nproc`
126 - make --output-sync -j`nproc` check V=1
128 # All ubuntu-20.04 jobs should run successfully in an environment
129 # setup by the scripts/ci/setup/qemu/build-environment.yml task
130 # "Install basic packages to build QEMU on Ubuntu 18.04/20.04"
131 ubuntu-20.04-aarch64-all-linux-static:
139 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
140 - if: "$S390X_RUNNER_AVAILABLE"
142 # --disable-libssh is needed because of https://bugs.launchpad.net/qemu/+bug/1838763
143 # --disable-glusterfs is needed because there's no static version of those libs in distro supplied packages
146 - ../configure --enable-debug --static --disable-system --disable-glusterfs --disable-libssh
147 - make --output-sync -j`nproc`
148 - make --output-sync -j`nproc` check V=1
149 - make --output-sync -j`nproc` check-tcg V=1
151 ubuntu-20.04-aarch64-all:
159 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
160 - if: "$S390X_RUNNER_AVAILABLE"
164 - ../configure --disable-libssh
165 - make --output-sync -j`nproc`
166 - make --output-sync -j`nproc` check V=1
168 ubuntu-20.04-aarch64-alldbg:
176 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
177 - if: "$S390X_RUNNER_AVAILABLE"
181 - ../configure --enable-debug --disable-libssh
183 - make --output-sync -j`nproc`
184 - make --output-sync -j`nproc` check V=1
186 ubuntu-20.04-aarch64-clang:
194 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
196 - if: "$S390X_RUNNER_AVAILABLE"
201 - ../configure --disable-libssh --cc=clang-10 --cxx=clang++-10 --enable-sanitizers
202 - make --output-sync -j`nproc`
203 - make --output-sync -j`nproc` check V=1
205 ubuntu-20.04-aarch64-tci:
213 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
214 - if: "$S390X_RUNNER_AVAILABLE"
218 - ../configure --disable-libssh --enable-tcg-interpreter
219 - make --output-sync -j`nproc`
221 ubuntu-20.04-aarch64-notcg:
229 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
231 - if: "$S390X_RUNNER_AVAILABLE"
236 - ../configure --disable-libssh --disable-tcg
237 - make --output-sync -j`nproc`
238 - make --output-sync -j`nproc` check V=1