.cirrus.yml raw
1 env:
2 BUILD: check
3 HOST:
4 MAKEFLAGS: -j4
5 BENCH: yes
6 TESTRUNS:
7 EXEC_CMD:
8 ENABLE_FIELDS:
9
10 cat_logs_snippet: &CAT_LOGS
11 on_failure:
12 cat_test_log_script:
13 - cat test-suite.log || true
14 cat_config_log_script:
15 - cat config.log || true
16 cat_test_env_script:
17 - cat test_env.log || true
18 cat_ci_env_script:
19 - env
20
21 merge_base_script_snippet: &MERGE_BASE
22 merge_base_script:
23 - if [ "$CIRRUS_PR" = "" ]; then exit 0; fi
24 - git fetch $CIRRUS_REPO_CLONE_URL $CIRRUS_BASE_BRANCH
25 - git config --global user.email "ci@ci.ci"
26 - git config --global user.name "ci"
27 - git merge FETCH_HEAD # Merge base to detect silent merge conflicts
28
29 env_matrix_snippet: &ENV_MATRIX_VALGRIND
30 - env:
31 ENABLE_FIELDS: "7,32,58"
32 - env:
33 BUILD: distcheck
34 - env:
35 EXEC_CMD: valgrind --error-exitcode=42
36 TESTRUNS: 1
37 BUILD:
38
39 env_matrix_snippet: &ENV_MATRIX_SAN_VALGRIND
40 - env:
41 ENABLE_FIELDS: "11,64,37"
42 - env:
43 BUILD: distcheck
44 - env:
45 EXEC_CMD: valgrind --error-exitcode=42
46 TESTRUNS: 1
47 BUILD:
48 - env:
49 CXXFLAGS: "-fsanitize=undefined -fno-omit-frame-pointer"
50 LDFLAGS: "-fsanitize=undefined -fno-omit-frame-pointer"
51 UBSAN_OPTIONS: "print_stacktrace=1:halt_on_error=1"
52 BENCH: no
53
54 task:
55 name: "x86_64: Linux (Debian stable)"
56 container:
57 dockerfile: ci/linux-debian.Dockerfile
58 memory: 2G
59 cpu: 4
60 matrix:
61 << : *ENV_MATRIX_SAN_VALGRIND
62 matrix:
63 - env:
64 CXX: g++
65 - env:
66 CXX: clang++ -gdwarf-4
67 << : *MERGE_BASE
68 test_script:
69 - ./ci/cirrus.sh
70 << : *CAT_LOGS
71
72 task:
73 name: "i686: Linux (Debian stable)"
74 container:
75 dockerfile: ci/linux-debian.Dockerfile
76 memory: 2G
77 cpu: 4
78 env:
79 HOST: i686-linux-gnu
80 matrix:
81 << : *ENV_MATRIX_VALGRIND
82 matrix:
83 - env:
84 CXX: i686-linux-gnu-g++
85 - env:
86 CXX: clang++ --target=i686-linux-gnu -gdwarf-4
87 CXXFLAGS: -g -O2 -isystem /usr/i686-linux-gnu/include -isystem /usr/i686-linux-gnu/include/c++/10/i686-linux-gnu
88 test_script:
89 - ./ci/cirrus.sh
90 << : *CAT_LOGS
91
92 task:
93 name: "arm64: macOS Monterey"
94 macos_instance:
95 image: ghcr.io/cirruslabs/macos-monterey-base:latest
96 env:
97 # Cirrus gives us a fixed number of 4 virtual CPUs.
98 MAKEFLAGS: -j5
99 matrix:
100 - env:
101 CXX: g++-11
102 # Homebrew's gcc for arm64 has no libubsan.
103 matrix:
104 - env:
105 ENABLE_FIELDS: 28
106 - env:
107 BUILD: distcheck
108 - env:
109 CXX: clang++
110 matrix:
111 - env:
112 ENABLE_FIELDS: 28
113 - env:
114 BUILD: distcheck
115 - env:
116 CXXFLAGS: "-fsanitize=undefined -fno-omit-frame-pointer"
117 LDFLAGS: "-fsanitize=undefined -fno-omit-frame-pointer"
118 UBSAN_OPTIONS: "print_stacktrace=1:halt_on_error=1"
119 BENCH: no
120 brew_script:
121 - brew update
122 - brew install automake libtool gcc@11
123 << : *MERGE_BASE
124 test_script:
125 - ./ci/cirrus.sh
126 << : *CAT_LOGS
127
128 task:
129 name: "s390x (big-endian): Linux (Debian stable, QEMU)"
130 container:
131 dockerfile: ci/linux-debian.Dockerfile
132 cpu: 4
133 memory: 2G
134 env:
135 EXEC_CMD: qemu-s390x
136 HOST: s390x-linux-gnu
137 BUILD:
138 << : *MERGE_BASE
139 test_script:
140 - ./ci/cirrus.sh
141 << : *CAT_LOGS
142
143 task:
144 name: "x86_64-w64-mingw32: Linux (Debian stable, Wine)"
145 container:
146 dockerfile: ci/linux-debian.Dockerfile
147 cpu: 4
148 memory: 2G
149 env:
150 EXEC_CMD: wine
151 EXEC_EXT: .exe
152 HOST: x86_64-w64-mingw32
153 BUILD:
154 << : *MERGE_BASE
155 test_script:
156 - ./ci/cirrus.sh
157 << : *CAT_LOGS
158