3 STATICPRECOMPUTATION: yes
4 ECMULTGENPRECISION: auto
20 cat_logs_snippet: &CAT_LOGS
23 - cat tests.log || true
24 cat_exhaustive_tests_log_script:
25 - cat exhaustive_tests.log || true
26 cat_valgrind_ctime_test_log_script:
27 - cat valgrind_ctime_test.log || true
29 - cat bench.log || true
31 cat_config_log_script:
32 - cat config.log || true
34 - cat test_env.log || true
38 merge_base_script_snippet: &MERGE_BASE
40 - if [ "$CIRRUS_PR" = "" ]; then exit 0; fi
41 - git fetch $CIRRUS_REPO_CLONE_URL $CIRRUS_BASE_BRANCH
43 - git config --global user.name "ci"
44 - git merge FETCH_HEAD # Merge base to detect silent merge conflicts
47 name: "x86_64: Linux (Debian stable)"
49 dockerfile: ci/linux-debian.Dockerfile
50 # Reduce number of CPUs to be able to do more builds in parallel.
52 # More than enough for our scripts.
55 - env: {WIDEMUL: int64, RECOVERY: yes}
56 - env: {WIDEMUL: int64, ECDH: yes, EXPERIMENTAL: yes, SCHNORRSIG: yes}
57 - env: {WIDEMUL: int128}
58 - env: {WIDEMUL: int128, RECOVERY: yes, EXPERIMENTAL: yes, SCHNORRSIG: yes}
59 - env: {WIDEMUL: int128, ECDH: yes, EXPERIMENTAL: yes, SCHNORRSIG: yes}
60 - env: {WIDEMUL: int128, ASM: x86_64}
61 - env: { RECOVERY: yes, EXPERIMENTAL: yes, SCHNORRSIG: yes}
62 - env: { STATICPRECOMPUTATION: no}
63 - env: {BUILD: distcheck, WITH_VALGRIND: no, CTIMETEST: no, BENCH: no}
64 - env: {CPPFLAGS: -DDETERMINISTIC}
65 - env: {CFLAGS: -O0, CTIMETEST: no}
67 CFLAGS: "-fsanitize=undefined -fno-omit-frame-pointer"
68 LDFLAGS: "-fsanitize=undefined -fno-omit-frame-pointer"
69 UBSAN_OPTIONS: "print_stacktrace=1:halt_on_error=1"
76 - env: { ECMULTGENPRECISION: 2 }
77 - env: { ECMULTGENPRECISION: 8 }
85 EXTRAFLAGS: "--disable-openssl-tests"
98 name: "i686: Linux (Debian stable)"
100 dockerfile: ci/linux-debian.Dockerfile
111 CC: i686-linux-gnu-gcc
113 CC: clang --target=i686-pc-linux-gnu -isystem /usr/i686-linux-gnu/include
119 name: "x86_64: macOS Catalina"
123 HOMEBREW_NO_AUTO_UPDATE: 1
124 HOMEBREW_NO_INSTALL_CLEANUP: 1
125 # Cirrus gives us a fixed number of 12 virtual CPUs. Not that we even have that many jobs at the moment...
134 # Update Command Line Tools
135 # Uncomment this if the Command Line Tools on the CirrusCI macOS image are too old to brew valgrind.
136 # See https://apple.stackexchange.com/a/195963 for the implementation.
137 ## update_clt_script:
138 ## - system_profiler SPSoftwareDataType
139 ## - touch /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress
141 ## PROD=$(softwareupdate -l | grep "*.*Command Line" | tail -n 1 | awk -F"*" '{print $2}' | sed -e 's/^ *//' | sed 's/Label: //g' | tr -d '\n')
143 ## - softwareupdate -l && echo "PROD: $PROD"
144 ## - softwareupdate -i "$PROD" --verbose
145 ## - rm /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress
147 brew_valgrind_pre_script:
149 - brew tap --shallow LouisBrunner/valgrind
150 # Fetch valgrind source but don't build it yet.
151 - brew fetch --HEAD LouisBrunner/valgrind/valgrind
153 # This is $(brew --cellar valgrind) but command substition does not work here.
154 folder: /usr/local/Cellar/valgrind
155 # Rebuild cache if ...
157 # ... macOS version changes:
161 # ... valgrind changes:
162 - git -C "$(brew --cache)/valgrind--git" rev-parse HEAD
164 # If there's no hit in the cache, build and install valgrind.
165 - brew install --HEAD LouisBrunner/valgrind/valgrind
166 brew_valgrind_post_script:
167 # If we have restored valgrind from the cache, tell brew to create symlink to the PATH.
168 # If we haven't restored from cached (and just run brew install), this is a no-op.
171 - brew install automake libtool gcc@9
178 name: "s390x (big-endian): Linux (Debian stable, QEMU)"
180 dockerfile: ci/linux-debian.Dockerfile
185 HOST: s390x-linux-gnu
195 # https://sourceware.org/bugzilla/show_bug.cgi?id=27008
196 - rm /etc/ld.so.cache
201 name: "ARM32: Linux (Debian stable, QEMU)"
203 dockerfile: ci/linux-debian.Dockerfile
208 HOST: arm-linux-gnueabihf
225 name: "ARM64: Linux (Debian stable, QEMU)"
227 dockerfile: ci/linux-debian.Dockerfile
231 QEMU_CMD: qemu-aarch64
232 HOST: aarch64-linux-gnu
246 name: "x86_64 (mingw32-w64): Windows (Debian stable, Wine)"
248 dockerfile: ci/linux-debian.Dockerfile
252 WINE_CMD: wine64-stable
253 HOST: x86_64-w64-mingw32