4 STATICPRECOMPUTATION: yes
5 ECMULTGENPRECISION: auto
21 cat_logs_snippet: &CAT_LOGS
24 - cat tests.log || true
25 cat_exhaustive_tests_log_script:
26 - cat exhaustive_tests.log || true
27 cat_valgrind_ctime_test_log_script:
28 - cat valgrind_ctime_test.log || true
30 - cat bench.log || true
32 cat_config_log_script:
33 - cat config.log || true
35 - cat test_env.log || true
39 merge_base_script_snippet: &MERGE_BASE
41 - if [ "$CIRRUS_PR" = "" ]; then exit 0; fi
42 - git fetch $CIRRUS_REPO_CLONE_URL $CIRRUS_BASE_BRANCH
44 - git config --global user.name "ci"
45 - git merge FETCH_HEAD # Merge base to detect silent merge conflicts
48 name: "x86_64: Linux (Debian stable)"
50 dockerfile: ci/linux-debian.Dockerfile
51 # Reduce number of CPUs to be able to do more builds in parallel.
53 # More than enough for our scripts.
56 - env: {WIDEMUL: int64, RECOVERY: yes}
57 - env: {WIDEMUL: int64, ECDH: yes, EXPERIMENTAL: yes, SCHNORRSIG: yes}
58 - env: {WIDEMUL: int128}
59 - env: {WIDEMUL: int128, RECOVERY: yes, EXPERIMENTAL: yes, SCHNORRSIG: yes}
60 - env: {WIDEMUL: int128, ECDH: yes, EXPERIMENTAL: yes, SCHNORRSIG: yes}
61 - env: {WIDEMUL: int128, ASM: x86_64}
63 - env: {BIGNUM: no, RECOVERY: yes, EXPERIMENTAL: yes, SCHNORRSIG: yes}
64 - env: {BIGNUM: no, STATICPRECOMPUTATION: no}
65 - env: {BUILD: distcheck, WITH_VALGRIND: no, CTIMETEST: no, BENCH: no}
66 - env: {CPPFLAGS: -DDETERMINISTIC}
67 - env: {CFLAGS: -O0, CTIMETEST: no}
69 CFLAGS: "-fsanitize=undefined -fno-omit-frame-pointer"
70 LDFLAGS: "-fsanitize=undefined -fno-omit-frame-pointer"
71 UBSAN_OPTIONS: "print_stacktrace=1:halt_on_error=1"
79 - env: { ECMULTGENPRECISION: 2 }
80 - env: { ECMULTGENPRECISION: 8 }
89 EXTRAFLAGS: "--disable-openssl-tests"
102 name: "i686: Linux (Debian stable)"
104 dockerfile: ci/linux-debian.Dockerfile
115 CC: i686-linux-gnu-gcc
117 CC: clang --target=i686-pc-linux-gnu -isystem /usr/i686-linux-gnu/include
129 name: "x86_64: macOS Catalina"
133 HOMEBREW_NO_AUTO_UPDATE: 1
134 HOMEBREW_NO_INSTALL_CLEANUP: 1
135 # Cirrus gives us a fixed number of 12 virtual CPUs. Not that we even have that many jobs at the moment...
144 # Update Command Line Tools
145 # Uncomment this if the Command Line Tools on the CirrusCI macOS image are too old to brew valgrind.
146 # See https://apple.stackexchange.com/a/195963 for the implementation.
147 ## update_clt_script:
148 ## - system_profiler SPSoftwareDataType
149 ## - touch /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress
151 ## PROD=$(softwareupdate -l | grep "*.*Command Line" | tail -n 1 | awk -F"*" '{print $2}' | sed -e 's/^ *//' | sed 's/Label: //g' | tr -d '\n')
153 ## - softwareupdate -l && echo "PROD: $PROD"
154 ## - softwareupdate -i "$PROD" --verbose
155 ## - rm /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress
157 brew_valgrind_pre_script:
159 - brew tap --shallow LouisBrunner/valgrind
160 # Fetch valgrind source but don't build it yet.
161 - brew fetch --HEAD LouisBrunner/valgrind/valgrind
163 # This is $(brew --cellar valgrind) but command substition does not work here.
164 folder: /usr/local/Cellar/valgrind
165 # Rebuild cache if ...
167 # ... macOS version changes:
171 # ... valgrind changes:
172 - git -C "$(brew --cache)/valgrind--git" rev-parse HEAD
174 # If there's no hit in the cache, build and install valgrind.
175 - brew install --HEAD LouisBrunner/valgrind/valgrind
176 brew_valgrind_post_script:
177 # If we have restored valgrind from the cache, tell brew to create symlink to the PATH.
178 # If we haven't restored from cached (and just run brew install), this is a no-op.
181 - brew install automake libtool gmp gcc@9
188 name: "s390x (big-endian): Linux (Debian stable, QEMU)"
190 dockerfile: ci/linux-debian.Dockerfile
195 HOST: s390x-linux-gnu
206 # https://sourceware.org/bugzilla/show_bug.cgi?id=27008
207 - rm /etc/ld.so.cache