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