mirror: Check job_is_cancelled() earlier
[qemu/armbru.git] / .gitlab-ci.d / custom-runners.yml
bloba89a20da48d7726410c802ac1c91380fad1bd7f7
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    allow_failure: true
64  - if: "$S390X_RUNNER_AVAILABLE"
65    when: manual
66    allow_failure: true
67  script:
68  - mkdir build
69  - cd build
70  - ../configure --enable-debug --disable-libssh
71  - make clean
72  - make --output-sync -j`nproc`
73  - make --output-sync -j`nproc` check V=1
75 ubuntu-18.04-s390x-clang:
76  needs: []
77  stage: build
78  tags:
79  - ubuntu_18.04
80  - s390x
81  rules:
82  - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
83    when: manual
84    allow_failure: true
85  - if: "$S390X_RUNNER_AVAILABLE"
86    when: manual
87    allow_failure: true
88  script:
89  - mkdir build
90  - cd build
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:
96  needs: []
97  stage: build
98  tags:
99  - ubuntu_18.04
100  - s390x
101  rules:
102  - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
103    when: manual
104    allow_failure: true
105  - if: "$S390X_RUNNER_AVAILABLE"
106    when: manual
107    allow_failure: true
108  script:
109  - mkdir build
110  - cd build
111  - ../configure --disable-libssh --enable-tcg-interpreter
112  - make --output-sync -j`nproc`
114 ubuntu-18.04-s390x-notcg:
115  needs: []
116  stage: build
117  tags:
118  - ubuntu_18.04
119  - s390x
120  rules:
121  - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
122    when: manual
123    allow_failure: true
124  - if: "$S390X_RUNNER_AVAILABLE"
125    when: manual
126    allow_failure: true
127  script:
128  - mkdir build
129  - cd build
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:
138  needs: []
139  stage: build
140  tags:
141  - ubuntu_20.04
142  - aarch64
143  rules:
144  - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
145  - if: "$AARCH64_RUNNER_AVAILABLE"
146  script:
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
149  - mkdir build
150  - cd build
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:
157  needs: []
158  stage: build
159  tags:
160  - ubuntu_20.04
161  - aarch64
162  rules:
163  - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
164    when: manual
165    allow_failure: true
166  - if: "$AARCH64_RUNNER_AVAILABLE"
167    when: manual
168    allow_failure: true
169  script:
170  - mkdir build
171  - cd build
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:
177  needs: []
178  stage: build
179  tags:
180  - ubuntu_20.04
181  - aarch64
182  rules:
183  - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
184  - if: "$AARCH64_RUNNER_AVAILABLE"
185  script:
186  - mkdir build
187  - cd build
188  - ../configure --enable-debug --disable-libssh
189  - make clean
190  - make --output-sync -j`nproc`
191  - make --output-sync -j`nproc` check V=1
193 ubuntu-20.04-aarch64-clang:
194  needs: []
195  stage: build
196  tags:
197  - ubuntu_20.04
198  - aarch64
199  rules:
200  - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
201    when: manual
202    allow_failure: true
203  - if: "$AARCH64_RUNNER_AVAILABLE"
204    when: manual
205    allow_failure: true
206  script:
207  - mkdir build
208  - cd build
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:
214  needs: []
215  stage: build
216  tags:
217  - ubuntu_20.04
218  - aarch64
219  rules:
220  - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
221    when: manual
222    allow_failure: true
223  - if: "$AARCH64_RUNNER_AVAILABLE"
224    when: manual
225    allow_failure: true
226  script:
227  - mkdir build
228  - cd build
229  - ../configure --disable-libssh --enable-tcg-interpreter
230  - make --output-sync -j`nproc`
232 ubuntu-20.04-aarch64-notcg:
233  needs: []
234  stage: build
235  tags:
236  - ubuntu_20.04
237  - aarch64
238  rules:
239  - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
240    when: manual
241    allow_failure: true
242  - if: "$AARCH64_RUNNER_AVAILABLE"
243    when: manual
244    allow_failure: true
245  script:
246  - mkdir build
247  - cd build
248  - ../configure --disable-libssh --disable-tcg
249  - make --output-sync -j`nproc`
250  - make --output-sync -j`nproc` check V=1