1# All ubuntu-22.04 jobs should run successfully in an environment
2# setup by the scripts/ci/setup/qemu/build-environment.yml task
3# "Install basic packages to build QEMU on Ubuntu 22.04"
4
5ubuntu-22.04-aarch64-all-linux-static:
6 extends: .custom_runner_template
7 needs: []
8 stage: build
9 tags:
10 - ubuntu_22.04
11 - aarch64
12 rules:
13 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
14 - if: "$AARCH64_RUNNER_AVAILABLE"
15 script:
16 - mkdir build
17 - cd build
18 # Disable -static-pie due to build error with system libc:
19 # https://bugs.launchpad.net/ubuntu/+source/glibc/+bug/1987438
20 - ../configure --enable-debug --static --disable-system --disable-pie
21   || { cat config.log meson-logs/meson-log.txt; exit 1; }
22 - make --output-sync -j`nproc --ignore=40`
23 - make check-tcg
24 - make --output-sync -j`nproc --ignore=40` check
25
26ubuntu-22.04-aarch64-all:
27 extends: .custom_runner_template
28 needs: []
29 stage: build
30 tags:
31 - ubuntu_22.04
32 - aarch64
33 rules:
34 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
35   when: manual
36   allow_failure: true
37 - if: "$AARCH64_RUNNER_AVAILABLE"
38   when: manual
39   allow_failure: true
40 script:
41 - mkdir build
42 - cd build
43 - ../configure
44   || { cat config.log meson-logs/meson-log.txt; exit 1; }
45 - make --output-sync -j`nproc --ignore=40`
46 - make --output-sync -j`nproc --ignore=40` check
47
48ubuntu-22.04-aarch64-without-defaults:
49 extends: .custom_runner_template
50 needs: []
51 stage: build
52 tags:
53 - ubuntu_22.04
54 - aarch64
55 rules:
56 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
57   when: manual
58   allow_failure: true
59 - if: "$AARCH64_RUNNER_AVAILABLE"
60   when: manual
61   allow_failure: true
62 script:
63 - mkdir build
64 - cd build
65 - ../configure --disable-user --without-default-devices --without-default-features
66   || { cat config.log meson-logs/meson-log.txt; exit 1; }
67 - make --output-sync -j`nproc --ignore=40`
68 - make --output-sync -j`nproc --ignore=40` check
69
70ubuntu-22.04-aarch64-alldbg:
71 extends: .custom_runner_template
72 needs: []
73 stage: build
74 tags:
75 - ubuntu_22.04
76 - aarch64
77 rules:
78 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
79 - if: "$AARCH64_RUNNER_AVAILABLE"
80 script:
81 - mkdir build
82 - cd build
83 - ../configure --enable-debug
84   || { cat config.log meson-logs/meson-log.txt; exit 1; }
85 - make clean
86 - make --output-sync -j`nproc --ignore=40`
87 - make --output-sync -j`nproc --ignore=40` check
88
89ubuntu-22.04-aarch64-clang:
90 extends: .custom_runner_template
91 needs: []
92 stage: build
93 tags:
94 - ubuntu_22.04
95 - aarch64
96 rules:
97 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
98   when: manual
99   allow_failure: true
100 - if: "$AARCH64_RUNNER_AVAILABLE"
101   when: manual
102   allow_failure: true
103 script:
104 - mkdir build
105 - cd build
106 - ../configure --disable-libssh --cc=clang --cxx=clang++ --enable-sanitizers
107   || { cat config.log meson-logs/meson-log.txt; exit 1; }
108 - make --output-sync -j`nproc --ignore=40`
109 - make --output-sync -j`nproc --ignore=40` check
110
111ubuntu-22.04-aarch64-tci:
112 needs: []
113 stage: build
114 tags:
115 - ubuntu_22.04
116 - aarch64
117 rules:
118 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
119   when: manual
120   allow_failure: true
121 - if: "$AARCH64_RUNNER_AVAILABLE"
122   when: manual
123   allow_failure: true
124 script:
125 - mkdir build
126 - cd build
127 - ../configure --enable-tcg-interpreter
128   || { cat config.log meson-logs/meson-log.txt; exit 1; }
129 - make --output-sync -j`nproc --ignore=40`
130
131ubuntu-22.04-aarch64-notcg:
132 extends: .custom_runner_template
133 needs: []
134 stage: build
135 tags:
136 - ubuntu_22.04
137 - aarch64
138 rules:
139 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
140   when: manual
141   allow_failure: true
142 - if: "$AARCH64_RUNNER_AVAILABLE"
143   when: manual
144   allow_failure: true
145 script:
146 - mkdir build
147 - cd build
148 - ../configure --disable-tcg --with-devices-aarch64=minimal
149   || { cat config.log meson-logs/meson-log.txt; exit 1; }
150 - make --output-sync -j`nproc --ignore=40`
151 - make --output-sync -j`nproc --ignore=40` check
152