4 STATICPRECOMPUTATION: yes
5 ECMULTGENPRECISION: auto
19 # We only need the top commit
22 cat_logs_snippet: &CAT_LOGS
25 - cat tests.log || true
26 - cat exhaustive_tests.log || true
27 - cat valgrind_ctime_test.log || true
28 - cat bench.log || true
31 - cat config.log || true
32 - cat test_env.log || true
36 name: "x86_64: Linux (Alpine Linux, Nix Shell)"
38 dockerfile: ci/linux-nixos.Dockerfile
39 # Reduce number of CPUs to be able to do more builds in parallel.
41 # More than enough for our scripts.
44 - env: {WIDEMUL: int64, RECOVERY: yes}
45 - env: {WIDEMUL: int64, ECDH: yes, EXPERIMENTAL: yes, SCHNORRSIG: yes}
46 - env: {WIDEMUL: int128}
47 - env: {WIDEMUL: int128, RECOVERY: yes, EXPERIMENTAL: yes, SCHNORRSIG: yes}
48 - env: {WIDEMUL: int128, ECDH: yes, EXPERIMENTAL: yes, SCHNORRSIG: yes}
49 - env: {WIDEMUL: int128, ASM: x86_64}
51 - env: {BIGNUM: no, RECOVERY: yes, EXPERIMENTAL: yes, SCHNORRSIG: yes}
52 - env: {BIGNUM: no, STATICPRECOMPUTATION: no}
53 - env: {BUILD: distcheck, WITH_VALGRIND: no, CTIMETEST: no, BENCH: no}
54 - env: {CPPFLAGS: -DDETERMINISTIC}
55 - env: {CFLAGS: -O0, CTIMETEST: no}
57 CFLAGS: "-fsanitize=undefined -fno-omit-frame-pointer"
58 LDFLAGS: "-fsanitize=undefined -fno-omit-frame-pointer"
59 UBSAN_OPTIONS: "print_stacktrace=1:halt_on_error=1"
67 - env: { ECMULTGENPRECISION: 2 }
68 - env: { ECMULTGENPRECISION: 8 }
77 EXTRAFLAGS: "--disable-openssl-tests"
85 - nix-shell ci/shell.nix --run ./ci/cirrus.sh
89 name: "i686: Linux (Alpine Linux, Nix Shell)"
91 dockerfile: ci/linux-nixos.Dockerfile
111 - nix-shell ci/shell-i686.nix --run ./ci/cirrus.sh
115 name: "x86_64: macOS Catalina"
119 HOMEBREW_NO_AUTO_UPDATE: 1
120 HOMEBREW_NO_INSTALL_CLEANUP: 1
128 # Update Command Line Tools
129 # Uncomment this if the Command Line Tools on the CirrusCI macOS image are too old to brew valgrind.
130 # See https://apple.stackexchange.com/a/195963 for the implementation.
131 ## update_clt_script:
132 ## - system_profiler SPSoftwareDataType
133 ## - touch /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress
135 ## PROD=$(softwareupdate -l | grep "*.*Command Line" | tail -n 1 | awk -F"*" '{print $2}' | sed -e 's/^ *//' | sed 's/Label: //g' | tr -d '\n')
137 ## - softwareupdate -l && echo "PROD: $PROD"
138 ## - softwareupdate -i "$PROD" --verbose
139 ## - rm /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress
141 brew_valgrind_pre_script:
143 - brew tap --shallow LouisBrunner/valgrind
144 # Fetch valgrind source but don't build it yet.
145 - brew fetch --HEAD LouisBrunner/valgrind/valgrind
147 # This is $(brew --cellar valgrind) but command substition does not work here.
148 folder: /usr/local/Cellar/valgrind
149 # Rebuild cache if ...
151 # ... macOS version changes:
155 # ... valgrind changes:
156 - git -C "$(brew --cache)/valgrind--git" rev-parse HEAD
158 # If there's no hit in the cache, build and install valgrind.
159 - brew install --HEAD LouisBrunner/valgrind/valgrind
160 brew_valgrind_post_script:
161 # If we have restored valgrind from the cache, tell brew to create symlink to the PATH.
162 # If we haven't restored from cached (and just run brew install), this is a no-op.
165 - brew install automake libtool gmp gcc@9
171 name: "s390x (big-endian): Linux (Debian QEMU)"
173 dockerfile: ci/linux-debian-s390-qemu.Dockerfile
178 HOST: s390x-linux-gnu
188 # https://sourceware.org/bugzilla/show_bug.cgi?id=27008
189 - rm /etc/ld.so.cache