172 lines
4.5 KiB
YAML
172 lines
4.5 KiB
YAML
|
env:
|
||
|
WIDEMUL: auto
|
||
|
BIGNUM: auto
|
||
|
STATICPRECOMPUTATION: yes
|
||
|
ECMULTGENPRECISION: auto
|
||
|
ASM: no
|
||
|
BUILD: check
|
||
|
WITH_VALGRIND: yes
|
||
|
RUN_VALGRIND: no
|
||
|
EXTRAFLAGS:
|
||
|
HOST:
|
||
|
ECDH: no
|
||
|
RECOVERY: no
|
||
|
SCHNORRSIG: no
|
||
|
EXPERIMENTAL: no
|
||
|
CTIMETEST: yes
|
||
|
BENCH: yes
|
||
|
ITERS: 2
|
||
|
# We only need the top commit
|
||
|
CIRRUS_CLONE_DEPTH: 1
|
||
|
|
||
|
cat_logs_snippet: &CAT_LOGS
|
||
|
always:
|
||
|
test_logs_script:
|
||
|
- cat tests.log || true
|
||
|
- cat exhaustive_tests.log || true
|
||
|
- cat valgrind_ctime_test.log || true
|
||
|
- cat bench.log || true
|
||
|
on_failure:
|
||
|
debug_output_script:
|
||
|
- cat config.log || true
|
||
|
- cat test_env.log || true
|
||
|
- env
|
||
|
|
||
|
task:
|
||
|
name: "x86_64: Linux (Alpine Linux, Nix Shell)"
|
||
|
container:
|
||
|
dockerfile: ci/linux-nixos.Dockerfile
|
||
|
# Reduce number of CPUs to be able to do more builds in parallel.
|
||
|
cpu: 1
|
||
|
# More than enough for our scripts.
|
||
|
memory: 1G
|
||
|
matrix: &ENV_MATRIX
|
||
|
- env: {WIDEMUL: int64, RECOVERY: yes}
|
||
|
- env: {WIDEMUL: int64, ECDH: yes, EXPERIMENTAL: yes, SCHNORRSIG: yes}
|
||
|
- env: {WIDEMUL: int128}
|
||
|
- env: {WIDEMUL: int128, RECOVERY: yes, EXPERIMENTAL: yes, SCHNORRSIG: yes}
|
||
|
- env: {WIDEMUL: int128, ECDH: yes, EXPERIMENTAL: yes, SCHNORRSIG: yes}
|
||
|
- env: {WIDEMUL: int128, ASM: x86_64}
|
||
|
- env: {BIGNUM: no}
|
||
|
- env: {BIGNUM: no, RECOVERY: yes, EXPERIMENTAL: yes, SCHNORRSIG: yes}
|
||
|
- env: {BIGNUM: no, STATICPRECOMPUTATION: no}
|
||
|
- env: {BUILD: distcheck, WITH_VALGRIND: no, CTIMETEST: no, BENCH: no}
|
||
|
- env: {CPPFLAGS: -DDETERMINISTIC}
|
||
|
- env: {CFLAGS: -O0, CTIMETEST: no}
|
||
|
- env:
|
||
|
CFLAGS: "-fsanitize=undefined -fno-omit-frame-pointer"
|
||
|
LDFLAGS: "-fsanitize=undefined -fno-omit-frame-pointer"
|
||
|
UBSAN_OPTIONS: "print_stacktrace=1:halt_on_error=1"
|
||
|
BIGNUM: no
|
||
|
ASM: x86_64
|
||
|
ECDH: yes
|
||
|
RECOVERY: yes
|
||
|
EXPERIMENTAL: yes
|
||
|
SCHNORRSIG: yes
|
||
|
CTIMETEST: no
|
||
|
- env: { ECMULTGENPRECISION: 2 }
|
||
|
- env: { ECMULTGENPRECISION: 8 }
|
||
|
- env:
|
||
|
RUN_VALGRIND: yes
|
||
|
BIGNUM: no
|
||
|
ASM: x86_64
|
||
|
ECDH: yes
|
||
|
RECOVERY: yes
|
||
|
EXPERIMENTAL: yes
|
||
|
SCHNORRSIG: yes
|
||
|
EXTRAFLAGS: "--disable-openssl-tests"
|
||
|
BUILD:
|
||
|
matrix:
|
||
|
- env:
|
||
|
CC: gcc
|
||
|
- env:
|
||
|
CC: clang
|
||
|
test_script:
|
||
|
- nix-shell ci/shell.nix --run ./ci/cirrus.sh
|
||
|
<< : *CAT_LOGS
|
||
|
|
||
|
task:
|
||
|
name: "i686: Linux (Alpine Linux, Nix Shell)"
|
||
|
container:
|
||
|
dockerfile: ci/linux-nixos.Dockerfile
|
||
|
cpu: 1
|
||
|
memory: 1G
|
||
|
env:
|
||
|
HOST: i686-linux-gnu
|
||
|
ECDH: yes
|
||
|
RECOVERY: yes
|
||
|
EXPERIMENTAL: yes
|
||
|
SCHNORRSIG: yes
|
||
|
matrix:
|
||
|
- env:
|
||
|
CC: gcc
|
||
|
- env:
|
||
|
CC: clang
|
||
|
matrix:
|
||
|
- env:
|
||
|
BIGNUM: gmp
|
||
|
- env:
|
||
|
BIGNUM: no
|
||
|
test_script:
|
||
|
- nix-shell ci/shell-i686.nix --run ./ci/cirrus.sh
|
||
|
<< : *CAT_LOGS
|
||
|
|
||
|
task:
|
||
|
name: "x86_64: macOS Catalina"
|
||
|
macos_instance:
|
||
|
image: catalina-base
|
||
|
matrix:
|
||
|
<< : *ENV_MATRIX
|
||
|
matrix:
|
||
|
- env:
|
||
|
CC: gcc-9
|
||
|
- env:
|
||
|
CC: clang
|
||
|
# Update Command Line Tools
|
||
|
# Uncomment this if the Command Line Tools on the CirrusCI macOS image are too old to brew valgrind.
|
||
|
# See https://apple.stackexchange.com/a/195963 for the implementation.
|
||
|
## update_clt_script:
|
||
|
## - system_profiler SPSoftwareDataType
|
||
|
## - touch /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress
|
||
|
## - |-
|
||
|
## PROD=$(softwareupdate -l | grep "*.*Command Line" | tail -n 1 | awk -F"*" '{print $2}' | sed -e 's/^ *//' | sed 's/Label: //g' | tr -d '\n')
|
||
|
## # For debugging
|
||
|
## - softwareupdate -l && echo "PROD: $PROD"
|
||
|
## - softwareupdate -i "$PROD" --verbose
|
||
|
## - rm /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress
|
||
|
##
|
||
|
brew_script:
|
||
|
# TODO cache the binaries
|
||
|
- export HOMEBREW_NO_AUTO_UPDATE=1
|
||
|
- export HOMEBREW_NO_INSTALL_CLEANUP=1
|
||
|
- brew config
|
||
|
- brew tap --shallow LouisBrunner/valgrind
|
||
|
- brew install --HEAD LouisBrunner/valgrind/valgrind
|
||
|
- brew install automake libtool gmp gcc@9
|
||
|
test_script:
|
||
|
- ./ci/cirrus.sh
|
||
|
<< : *CAT_LOGS
|
||
|
|
||
|
task:
|
||
|
name: "s390x (big-endian): Linux (Debian QEMU)"
|
||
|
container:
|
||
|
dockerfile: ci/linux-debian-s390-qemu.Dockerfile
|
||
|
cpu: 1
|
||
|
memory: 1G
|
||
|
env:
|
||
|
QEMU_CMD: qemu-s390x
|
||
|
HOST: s390x-linux-gnu
|
||
|
BUILD:
|
||
|
WITH_VALGRIND: no
|
||
|
BIGNUM: no
|
||
|
ECDH: yes
|
||
|
RECOVERY: yes
|
||
|
EXPERIMENTAL: yes
|
||
|
SCHNORRSIG: yes
|
||
|
CTIMETEST: no
|
||
|
test_script:
|
||
|
# https://sourceware.org/bugzilla/show_bug.cgi?id=27008
|
||
|
- rm /etc/ld.so.cache
|
||
|
- ./ci/cirrus.sh
|
||
|
<< : *CAT_LOGS
|