aboutsummaryrefslogtreecommitdiff
path: root/src/secp256k1/.cirrus.yml
diff options
context:
space:
mode:
Diffstat (limited to 'src/secp256k1/.cirrus.yml')
-rw-r--r--src/secp256k1/.cirrus.yml98
1 files changed, 42 insertions, 56 deletions
diff --git a/src/secp256k1/.cirrus.yml b/src/secp256k1/.cirrus.yml
index 35a9a45367..a2e7f36d1f 100644
--- a/src/secp256k1/.cirrus.yml
+++ b/src/secp256k1/.cirrus.yml
@@ -4,10 +4,10 @@ env:
# Specific warnings can be disabled with -Wno-error=foo.
# -pedantic-errors is not equivalent to -Werror=pedantic and thus not implied by -Werror according to the GCC manual.
WERROR_CFLAGS: -Werror -pedantic-errors
- MAKEFLAGS: -j2
+ MAKEFLAGS: -j4
BUILD: check
### secp256k1 config
- STATICPRECOMPUTATION: yes
+ ECMULTWINDOW: auto
ECMULTGENPRECISION: auto
ASM: no
WIDEMUL: auto
@@ -23,6 +23,8 @@ env:
BENCH: yes
SECP256K1_BENCH_ITERS: 2
CTIMETEST: yes
+ # Compile and run the tests
+ EXAMPLES: yes
cat_logs_snippet: &CAT_LOGS
always:
@@ -50,28 +52,32 @@ merge_base_script_snippet: &MERGE_BASE
- git config --global user.name "ci"
- git merge FETCH_HEAD # Merge base to detect silent merge conflicts
-task:
- name: "x86_64: Linux (Debian stable)"
+linux_container_snippet: &LINUX_CONTAINER
container:
dockerfile: ci/linux-debian.Dockerfile
# Reduce number of CPUs to be able to do more builds in parallel.
cpu: 1
+ # Gives us more CPUs for free if they're available.
+ greedy: true
# More than enough for our scripts.
memory: 1G
+
+task:
+ name: "x86_64: Linux (Debian stable)"
+ << : *LINUX_CONTAINER
matrix: &ENV_MATRIX
- env: {WIDEMUL: int64, RECOVERY: yes}
- - env: {WIDEMUL: int64, ECDH: yes, EXPERIMENTAL: yes, SCHNORRSIG: yes}
+ - env: {WIDEMUL: int64, ECDH: 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, RECOVERY: yes, SCHNORRSIG: yes}
+ - env: {WIDEMUL: int128, ECDH: yes, SCHNORRSIG: yes}
- env: {WIDEMUL: int128, ASM: x86_64}
- - env: { RECOVERY: yes, EXPERIMENTAL: yes, SCHNORRSIG: yes}
- - env: { STATICPRECOMPUTATION: no}
+ - env: { RECOVERY: yes, SCHNORRSIG: yes}
- env: {BUILD: distcheck, WITH_VALGRIND: no, CTIMETEST: no, BENCH: no}
- env: {CPPFLAGS: -DDETERMINISTIC}
- env: {CFLAGS: -O0, CTIMETEST: no}
- - env: { ECMULTGENPRECISION: 2 }
- - env: { ECMULTGENPRECISION: 8 }
+ - env: { ECMULTGENPRECISION: 2, ECMULTWINDOW: 2 }
+ - env: { ECMULTGENPRECISION: 8, ECMULTWINDOW: 4 }
matrix:
- env:
CC: gcc
@@ -84,15 +90,11 @@ task:
task:
name: "i686: Linux (Debian stable)"
- container:
- dockerfile: ci/linux-debian.Dockerfile
- cpu: 1
- memory: 1G
+ << : *LINUX_CONTAINER
env:
HOST: i686-linux-gnu
ECDH: yes
RECOVERY: yes
- EXPERIMENTAL: yes
SCHNORRSIG: yes
matrix:
- env:
@@ -134,8 +136,10 @@ task:
## - rm /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress
##
brew_valgrind_pre_script:
+ # Retry a few times because this tends to fail randomly.
+ - for i in {1..5}; do brew update && break || sleep 15; done
- brew config
- - brew tap --shallow LouisBrunner/valgrind
+ - brew tap LouisBrunner/valgrind
# Fetch valgrind source but don't build it yet.
- brew fetch --HEAD LouisBrunner/valgrind/valgrind
brew_valgrind_cache:
@@ -165,10 +169,7 @@ task:
task:
name: "s390x (big-endian): Linux (Debian stable, QEMU)"
- container:
- dockerfile: ci/linux-debian.Dockerfile
- cpu: 1
- memory: 1G
+ << : *LINUX_CONTAINER
env:
WRAPPER_CMD: qemu-s390x
SECP256K1_TEST_ITERS: 16
@@ -176,7 +177,6 @@ task:
WITH_VALGRIND: no
ECDH: yes
RECOVERY: yes
- EXPERIMENTAL: yes
SCHNORRSIG: yes
CTIMETEST: no
<< : *MERGE_BASE
@@ -188,10 +188,7 @@ task:
task:
name: "ARM32: Linux (Debian stable, QEMU)"
- container:
- dockerfile: ci/linux-debian.Dockerfile
- cpu: 1
- memory: 1G
+ << : *LINUX_CONTAINER
env:
WRAPPER_CMD: qemu-arm
SECP256K1_TEST_ITERS: 16
@@ -199,12 +196,11 @@ task:
WITH_VALGRIND: no
ECDH: yes
RECOVERY: yes
- EXPERIMENTAL: yes
SCHNORRSIG: yes
CTIMETEST: no
matrix:
- env: {}
- - env: {ASM: arm}
+ - env: {EXPERIMENTAL: yes, ASM: arm}
<< : *MERGE_BASE
test_script:
- ./ci/cirrus.sh
@@ -212,10 +208,7 @@ task:
task:
name: "ARM64: Linux (Debian stable, QEMU)"
- container:
- dockerfile: ci/linux-debian.Dockerfile
- cpu: 1
- memory: 1G
+ << : *LINUX_CONTAINER
env:
WRAPPER_CMD: qemu-aarch64
SECP256K1_TEST_ITERS: 16
@@ -223,7 +216,6 @@ task:
WITH_VALGRIND: no
ECDH: yes
RECOVERY: yes
- EXPERIMENTAL: yes
SCHNORRSIG: yes
CTIMETEST: no
<< : *MERGE_BASE
@@ -233,10 +225,7 @@ task:
task:
name: "ppc64le: Linux (Debian stable, QEMU)"
- container:
- dockerfile: ci/linux-debian.Dockerfile
- cpu: 1
- memory: 1G
+ << : *LINUX_CONTAINER
env:
WRAPPER_CMD: qemu-ppc64le
SECP256K1_TEST_ITERS: 16
@@ -244,7 +233,6 @@ task:
WITH_VALGRIND: no
ECDH: yes
RECOVERY: yes
- EXPERIMENTAL: yes
SCHNORRSIG: yes
CTIMETEST: no
<< : *MERGE_BASE
@@ -254,10 +242,7 @@ task:
task:
name: "x86_64 (mingw32-w64): Windows (Debian stable, Wine)"
- container:
- dockerfile: ci/linux-debian.Dockerfile
- cpu: 1
- memory: 1G
+ << : *LINUX_CONTAINER
env:
WRAPPER_CMD: wine64-stable
SECP256K1_TEST_ITERS: 16
@@ -265,7 +250,6 @@ task:
WITH_VALGRIND: no
ECDH: yes
RECOVERY: yes
- EXPERIMENTAL: yes
SCHNORRSIG: yes
CTIMETEST: no
<< : *MERGE_BASE
@@ -275,23 +259,23 @@ task:
# Sanitizers
task:
- container:
- dockerfile: ci/linux-debian.Dockerfile
- cpu: 1
- memory: 2G
+ << : *LINUX_CONTAINER
env:
ECDH: yes
RECOVERY: yes
- EXPERIMENTAL: yes
SCHNORRSIG: yes
CTIMETEST: no
matrix:
- name: "Valgrind (memcheck)"
+ container:
+ cpu: 2
env:
# The `--error-exitcode` is required to make the test fail if valgrind found errors, otherwise it'll return 0 (https://www.valgrind.org/docs/manual/manual-core.html)
WRAPPER_CMD: "valgrind --error-exitcode=42"
SECP256K1_TEST_ITERS: 2
- name: "UBSan, ASan, LSan"
+ container:
+ memory: 2G
env:
CFLAGS: "-fsanitize=undefined,address -g"
UBSAN_OPTIONS: "print_stacktrace=1:halt_on_error=1"
@@ -302,11 +286,10 @@ task:
matrix:
- env:
ASM: auto
- STATICPRECOMPUTATION: yes
- env:
ASM: no
- STATICPRECOMPUTATION: no
ECMULTGENPRECISION: 2
+ ECMULTWINDOW: 2
matrix:
- env:
CC: clang
@@ -320,17 +303,13 @@ task:
task:
name: "C++ -fpermissive"
- container:
- dockerfile: ci/linux-debian.Dockerfile
- cpu: 1
- memory: 1G
+ << : *LINUX_CONTAINER
env:
# ./configure correctly errors out when given CC=g++.
# We hack around this by passing CC=g++ only to make.
CC: gcc
- MAKEFLAGS: -j2 CC=g++ CFLAGS=-fpermissive\ -g
+ MAKEFLAGS: -j4 CC=g++ CFLAGS=-fpermissive\ -g
WERROR_CFLAGS:
- EXPERIMENTAL: yes
ECDH: yes
RECOVERY: yes
SCHNORRSIG: yes
@@ -338,3 +317,10 @@ task:
test_script:
- ./ci/cirrus.sh
<< : *CAT_LOGS
+
+task:
+ name: "sage prover"
+ << : *LINUX_CONTAINER
+ test_script:
+ - cd sage
+ - sage prove_group_implementations.sage