gitlab-ci: Make more custom runner jobs manual, and don't allow failure
[qemu.git] / .gitlab-ci.d / custom-runners.yml
blobbcd22ca293c7a8a14579f0d48fb81308fab63132
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.
13 variables:
14   GIT_STRATEGY: clone
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:
20  needs: []
21  stage: build
22  tags:
23  - ubuntu_18.04
24  - s390x
25  rules:
26  - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
27  - if: "$S390X_RUNNER_AVAILABLE"
28  script:
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
31  - mkdir build
32  - cd build
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:
39  needs: []
40  stage: build
41  tags:
42  - ubuntu_18.04
43  - s390x
44  rules:
45  - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
46  - if: "$S390X_RUNNER_AVAILABLE"
47  script:
48  - mkdir build
49  - cd build
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:
55  needs: []
56  stage: build
57  tags:
58  - ubuntu_18.04
59  - s390x
60  rules:
61  - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
62    when: manual
63  - if: "$S390X_RUNNER_AVAILABLE"
64    when: manual
65  script:
66  - mkdir build
67  - cd build
68  - ../configure --enable-debug --disable-libssh
69  - make clean
70  - make --output-sync -j`nproc`
71  - make --output-sync -j`nproc` check V=1
73 ubuntu-18.04-s390x-clang:
74  needs: []
75  stage: build
76  tags:
77  - ubuntu_18.04
78  - s390x
79  rules:
80  - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
81    when: manual
82  - if: "$S390X_RUNNER_AVAILABLE"
83    when: manual
84  script:
85  - mkdir build
86  - cd build
87  - ../configure --disable-libssh --cc=clang --cxx=clang++ --enable-sanitizers
88  - make --output-sync -j`nproc`
89  - make --output-sync -j`nproc` check V=1
91 ubuntu-18.04-s390x-tci:
92  needs: []
93  stage: build
94  tags:
95  - ubuntu_18.04
96  - s390x
97  rules:
98  - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
99    when: manual
100  - if: "$S390X_RUNNER_AVAILABLE"
101    when: manual
102  script:
103  - mkdir build
104  - cd build
105  - ../configure --disable-libssh --enable-tcg-interpreter
106  - make --output-sync -j`nproc`
108 ubuntu-18.04-s390x-notcg:
109  needs: []
110  stage: build
111  tags:
112  - ubuntu_18.04
113  - s390x
114  rules:
115  - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
116    when: manual
117  - if: "$S390X_RUNNER_AVAILABLE"
118    when: manual
119  script:
120  - mkdir build
121  - cd build
122  - ../configure --disable-libssh --disable-tcg
123  - make --output-sync -j`nproc`
124  - make --output-sync -j`nproc` check V=1
126 # All ubuntu-20.04 jobs should run successfully in an environment
127 # setup by the scripts/ci/setup/qemu/build-environment.yml task
128 # "Install basic packages to build QEMU on Ubuntu 18.04/20.04"
129 ubuntu-20.04-aarch64-all-linux-static:
130  needs: []
131  stage: build
132  tags:
133  - ubuntu_20.04
134  - aarch64
135  rules:
136  - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
137  - if: "$AARCH64_RUNNER_AVAILABLE"
138  script:
139  # --disable-libssh is needed because of https://bugs.launchpad.net/qemu/+bug/1838763
140  # --disable-glusterfs is needed because there's no static version of those libs in distro supplied packages
141  - mkdir build
142  - cd build
143  - ../configure --enable-debug --static --disable-system --disable-glusterfs --disable-libssh
144  - make --output-sync -j`nproc`
145  - make --output-sync -j`nproc` check V=1
146  - make --output-sync -j`nproc` check-tcg V=1
148 ubuntu-20.04-aarch64-all:
149  needs: []
150  stage: build
151  tags:
152  - ubuntu_20.04
153  - aarch64
154  rules:
155  - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
156    when: manual
157  - if: "$AARCH64_RUNNER_AVAILABLE"
158    when: manual
159  script:
160  - mkdir build
161  - cd build
162  - ../configure --disable-libssh
163  - make --output-sync -j`nproc`
164  - make --output-sync -j`nproc` check V=1
166 ubuntu-20.04-aarch64-alldbg:
167  needs: []
168  stage: build
169  tags:
170  - ubuntu_20.04
171  - aarch64
172  rules:
173  - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
174  - if: "$AARCH64_RUNNER_AVAILABLE"
175  script:
176  - mkdir build
177  - cd build
178  - ../configure --enable-debug --disable-libssh
179  - make clean
180  - make --output-sync -j`nproc`
181  - make --output-sync -j`nproc` check V=1
183 ubuntu-20.04-aarch64-clang:
184  needs: []
185  stage: build
186  tags:
187  - ubuntu_20.04
188  - aarch64
189  rules:
190  - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
191    when: manual
192  - if: "$AARCH64_RUNNER_AVAILABLE"
193    when: manual
194  script:
195  - mkdir build
196  - cd build
197  - ../configure --disable-libssh --cc=clang-10 --cxx=clang++-10 --enable-sanitizers
198  - make --output-sync -j`nproc`
199  - make --output-sync -j`nproc` check V=1
201 ubuntu-20.04-aarch64-tci:
202  needs: []
203  stage: build
204  tags:
205  - ubuntu_20.04
206  - aarch64
207  rules:
208  - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
209    when: manual
210  - if: "$AARCH64_RUNNER_AVAILABLE"
211    when: manual
212  script:
213  - mkdir build
214  - cd build
215  - ../configure --disable-libssh --enable-tcg-interpreter
216  - make --output-sync -j`nproc`
218 ubuntu-20.04-aarch64-notcg:
219  needs: []
220  stage: build
221  tags:
222  - ubuntu_20.04
223  - aarch64
224  rules:
225  - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
226    when: manual
227  - if: "$AARCH64_RUNNER_AVAILABLE"
228    when: manual
229  script:
230  - mkdir build
231  - cd build
232  - ../configure --disable-libssh --disable-tcg
233  - make --output-sync -j`nproc`
234  - make --output-sync -j`nproc` check V=1