1# All ubuntu-20.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 20.04"
4
5ubuntu-22.04-aarch64-all-linux-static:
6 extends: .custom_artifacts_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_artifacts_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-alldbg:
49 extends: .custom_artifacts_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 - if: "$AARCH64_RUNNER_AVAILABLE"
58 script:
59 - mkdir build
60 - cd build
61 - ../configure --enable-debug
62   || { cat config.log meson-logs/meson-log.txt; exit 1; }
63 - make clean
64 - make --output-sync -j`nproc --ignore=40`
65 - make --output-sync -j`nproc --ignore=40` check
66
67ubuntu-22.04-aarch64-clang:
68 extends: .custom_artifacts_template
69 needs: []
70 stage: build
71 tags:
72 - ubuntu_22.04
73 - aarch64
74 rules:
75 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
76   when: manual
77   allow_failure: true
78 - if: "$AARCH64_RUNNER_AVAILABLE"
79   when: manual
80   allow_failure: true
81 script:
82 - mkdir build
83 - cd build
84 - ../configure --disable-libssh --cc=clang --cxx=clang++ --enable-sanitizers
85   || { cat config.log meson-logs/meson-log.txt; exit 1; }
86 - make --output-sync -j`nproc --ignore=40`
87 - make --output-sync -j`nproc --ignore=40` check
88
89ubuntu-22.04-aarch64-tci:
90 needs: []
91 stage: build
92 tags:
93 - ubuntu_22.04
94 - aarch64
95 rules:
96 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
97   when: manual
98   allow_failure: true
99 - if: "$AARCH64_RUNNER_AVAILABLE"
100   when: manual
101   allow_failure: true
102 script:
103 - mkdir build
104 - cd build
105 - ../configure --enable-tcg-interpreter
106   || { cat config.log meson-logs/meson-log.txt; exit 1; }
107 - make --output-sync -j`nproc --ignore=40`
108
109ubuntu-22.04-aarch64-notcg:
110 extends: .custom_artifacts_template
111 needs: []
112 stage: build
113 tags:
114 - ubuntu_22.04
115 - aarch64
116 rules:
117 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
118   when: manual
119   allow_failure: true
120 - if: "$AARCH64_RUNNER_AVAILABLE"
121   when: manual
122   allow_failure: true
123 script:
124 - mkdir build
125 - cd build
126 - ../configure --disable-tcg
127   || { cat config.log meson-logs/meson-log.txt; exit 1; }
128 - make --output-sync -j`nproc --ignore=40`
129 - make --output-sync -j`nproc --ignore=40` check
130