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.yml413
1 files changed, 0 insertions, 413 deletions
diff --git a/src/secp256k1/.cirrus.yml b/src/secp256k1/.cirrus.yml
deleted file mode 100644
index ae205c624c..0000000000
--- a/src/secp256k1/.cirrus.yml
+++ /dev/null
@@ -1,413 +0,0 @@
-env:
- ### cirrus config
- CIRRUS_CLONE_DEPTH: 1
- ### compiler options
- HOST:
- WRAPPER_CMD:
- # 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: -j4
- BUILD: check
- ### secp256k1 config
- ECMULTWINDOW: auto
- ECMULTGENPRECISION: auto
- ASM: no
- WIDEMUL: auto
- WITH_VALGRIND: yes
- EXTRAFLAGS:
- ### secp256k1 modules
- EXPERIMENTAL: no
- ECDH: no
- RECOVERY: no
- SCHNORRSIG: no
- ELLSWIFT: no
- ### test options
- SECP256K1_TEST_ITERS:
- BENCH: yes
- SECP256K1_BENCH_ITERS: 2
- CTIMETESTS: yes
- # Compile and run the tests
- EXAMPLES: yes
-
-# https://cirrus-ci.org/pricing/#compute-credits
-credits_snippet: &CREDITS
- # Don't use any credits for now.
- use_compute_credits: false
-
-cat_logs_snippet: &CAT_LOGS
- always:
- cat_tests_log_script:
- - cat tests.log || true
- cat_noverify_tests_log_script:
- - cat noverify_tests.log || true
- cat_exhaustive_tests_log_script:
- - cat exhaustive_tests.log || true
- cat_ctime_tests_log_script:
- - cat ctime_tests.log || true
- cat_bench_log_script:
- - cat bench.log || true
- cat_config_log_script:
- - cat config.log || true
- cat_test_env_script:
- - cat test_env.log || true
- cat_ci_env_script:
- - env
-
-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: 2G
-
-task:
- name: "x86_64: Linux (Debian stable)"
- << : *LINUX_CONTAINER
- matrix:
- - env: {WIDEMUL: int64, RECOVERY: yes}
- - env: {WIDEMUL: int64, ECDH: yes, SCHNORRSIG: yes, ELLSWIFT: yes}
- - env: {WIDEMUL: int128}
- - env: {WIDEMUL: int128_struct, ELLSWIFT: yes}
- - env: {WIDEMUL: int128, RECOVERY: yes, SCHNORRSIG: yes, ELLSWIFT: yes}
- - env: {WIDEMUL: int128, ECDH: yes, SCHNORRSIG: yes}
- - env: {WIDEMUL: int128, ASM: x86_64 , ELLSWIFT: yes}
- - env: { RECOVERY: yes, SCHNORRSIG: yes}
- - env: {CTIMETESTS: no, RECOVERY: yes, ECDH: yes, SCHNORRSIG: yes, CPPFLAGS: -DVERIFY}
- - env: {BUILD: distcheck, WITH_VALGRIND: no, CTIMETESTS: no, BENCH: no}
- - env: {CPPFLAGS: -DDETERMINISTIC}
- - env: {CFLAGS: -O0, CTIMETESTS: no}
- - env: {CFLAGS: -O1, RECOVERY: yes, ECDH: yes, SCHNORRSIG: yes, ELLSWIFT: yes}
- - env: { ECMULTGENPRECISION: 2, ECMULTWINDOW: 2 }
- - env: { ECMULTGENPRECISION: 8, ECMULTWINDOW: 4 }
- matrix:
- - env:
- CC: gcc
- - env:
- CC: clang
- - env:
- CC: gcc-snapshot
- - env:
- CC: clang-snapshot
- test_script:
- - ./ci/cirrus.sh
- << : *CAT_LOGS
-
-task:
- name: "i686: Linux (Debian stable)"
- << : *LINUX_CONTAINER
- env:
- HOST: i686-linux-gnu
- ECDH: yes
- RECOVERY: yes
- SCHNORRSIG: yes
- matrix:
- - env:
- CC: i686-linux-gnu-gcc
- - env:
- CC: clang --target=i686-pc-linux-gnu -isystem /usr/i686-linux-gnu/include
- test_script:
- - ./ci/cirrus.sh
- << : *CAT_LOGS
-
-task:
- name: "arm64: macOS Ventura"
- macos_instance:
- image: ghcr.io/cirruslabs/macos-ventura-base:latest
- env:
- HOMEBREW_NO_AUTO_UPDATE: 1
- HOMEBREW_NO_INSTALL_CLEANUP: 1
- # Cirrus gives us a fixed number of 4 virtual CPUs. Not that we even have that many jobs at the moment...
- MAKEFLAGS: -j5
- env:
- ASM: no
- WITH_VALGRIND: no
- CTIMETESTS: no
- CC: clang
- matrix:
- - env: {WIDEMUL: int64, RECOVERY: yes, ECDH: yes, SCHNORRSIG: yes, ELLSWIFT: yes}
- - env: {WIDEMUL: int64, RECOVERY: yes, ECDH: yes, SCHNORRSIG: yes, ELLSWIFT: yes, CC: gcc}
- - env: {WIDEMUL: int128_struct, ECMULTGENPRECISION: 2, ECMULTWINDOW: 4}
- - env: {WIDEMUL: int128, ECDH: yes, SCHNORRSIG: yes, ELLSWIFT: yes}
- - env: {WIDEMUL: int128, RECOVERY: yes, SCHNORRSIG: yes}
- - env: {WIDEMUL: int128, RECOVERY: yes, ECDH: yes, SCHNORRSIG: yes, ELLSWIFT: yes, CC: gcc}
- - env: {WIDEMUL: int128, RECOVERY: yes, ECDH: yes, SCHNORRSIG: yes, ELLSWIFT: yes, CPPFLAGS: -DVERIFY}
- - env: {BUILD: distcheck}
- brew_script:
- - brew install automake libtool gcc
- test_script:
- - ./ci/cirrus.sh
- << : *CAT_LOGS
- << : *CREDITS
-
-task:
- name: "s390x (big-endian): Linux (Debian stable, QEMU)"
- << : *LINUX_CONTAINER
- env:
- WRAPPER_CMD: qemu-s390x
- SECP256K1_TEST_ITERS: 16
- HOST: s390x-linux-gnu
- WITH_VALGRIND: no
- ECDH: yes
- RECOVERY: yes
- SCHNORRSIG: yes
- ELLSWIFT: yes
- CTIMETESTS: no
- test_script:
- # https://sourceware.org/bugzilla/show_bug.cgi?id=27008
- - rm /etc/ld.so.cache
- - ./ci/cirrus.sh
- << : *CAT_LOGS
-
-task:
- name: "ARM32: Linux (Debian stable, QEMU)"
- << : *LINUX_CONTAINER
- env:
- WRAPPER_CMD: qemu-arm
- SECP256K1_TEST_ITERS: 16
- HOST: arm-linux-gnueabihf
- WITH_VALGRIND: no
- ECDH: yes
- RECOVERY: yes
- SCHNORRSIG: yes
- ELLSWIFT: yes
- CTIMETESTS: no
- matrix:
- - env: {}
- - env: {EXPERIMENTAL: yes, ASM: arm32}
- test_script:
- - ./ci/cirrus.sh
- << : *CAT_LOGS
-
-task:
- name: "ARM64: Linux (Debian stable, QEMU)"
- << : *LINUX_CONTAINER
- env:
- WRAPPER_CMD: qemu-aarch64
- SECP256K1_TEST_ITERS: 16
- HOST: aarch64-linux-gnu
- WITH_VALGRIND: no
- ECDH: yes
- RECOVERY: yes
- SCHNORRSIG: yes
- ELLSWIFT: yes
- CTIMETESTS: no
- test_script:
- - ./ci/cirrus.sh
- << : *CAT_LOGS
-
-task:
- name: "ppc64le: Linux (Debian stable, QEMU)"
- << : *LINUX_CONTAINER
- env:
- WRAPPER_CMD: qemu-ppc64le
- SECP256K1_TEST_ITERS: 16
- HOST: powerpc64le-linux-gnu
- WITH_VALGRIND: no
- ECDH: yes
- RECOVERY: yes
- SCHNORRSIG: yes
- ELLSWIFT: yes
- CTIMETESTS: no
- test_script:
- - ./ci/cirrus.sh
- << : *CAT_LOGS
-
-task:
- << : *LINUX_CONTAINER
- env:
- WRAPPER_CMD: wine
- WITH_VALGRIND: no
- ECDH: yes
- RECOVERY: yes
- SCHNORRSIG: yes
- CTIMETESTS: no
- matrix:
- - name: "x86_64 (mingw32-w64): Windows (Debian stable, Wine)"
- env:
- HOST: x86_64-w64-mingw32
- - name: "i686 (mingw32-w64): Windows (Debian stable, Wine)"
- env:
- HOST: i686-w64-mingw32
- test_script:
- - ./ci/cirrus.sh
- << : *CAT_LOGS
-
-task:
- << : *LINUX_CONTAINER
- env:
- WRAPPER_CMD: wine
- WERROR_CFLAGS: -WX
- WITH_VALGRIND: no
- ECDH: yes
- RECOVERY: yes
- EXPERIMENTAL: yes
- SCHNORRSIG: yes
- ELLSWIFT: yes
- CTIMETESTS: no
- # Use a MinGW-w64 host to tell ./configure we're building for Windows.
- # This will detect some MinGW-w64 tools but then make will need only
- # the MSVC tools CC, AR and NM as specified below.
- HOST: x86_64-w64-mingw32
- CC: /opt/msvc/bin/x64/cl
- AR: /opt/msvc/bin/x64/lib
- NM: /opt/msvc/bin/x64/dumpbin -symbols -headers
- # Set non-essential options that affect the CLI messages here.
- # (They depend on the user's taste, so we don't want to set them automatically in configure.ac.)
- CFLAGS: -nologo -diagnostics:caret
- LDFLAGS: -Xlinker -Xlinker -Xlinker -nologo
- matrix:
- - name: "x86_64 (MSVC): Windows (Debian stable, Wine)"
- - name: "x86_64 (MSVC): Windows (Debian stable, Wine, int128_struct)"
- env:
- WIDEMUL: int128_struct
- - name: "x86_64 (MSVC): Windows (Debian stable, Wine, int128_struct with __(u)mulh)"
- env:
- WIDEMUL: int128_struct
- CPPFLAGS: -DSECP256K1_MSVC_MULH_TEST_OVERRIDE
- - name: "i686 (MSVC): Windows (Debian stable, Wine)"
- env:
- HOST: i686-w64-mingw32
- CC: /opt/msvc/bin/x86/cl
- AR: /opt/msvc/bin/x86/lib
- NM: /opt/msvc/bin/x86/dumpbin -symbols -headers
- test_script:
- - ./ci/cirrus.sh
- << : *CAT_LOGS
-
-# Sanitizers
-task:
- << : *LINUX_CONTAINER
- env:
- ECDH: yes
- RECOVERY: yes
- SCHNORRSIG: yes
- ELLSWIFT: yes
- CTIMETESTS: 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"
- ASAN_OPTIONS: "strict_string_checks=1:detect_stack_use_after_return=1:detect_leaks=1"
- LSAN_OPTIONS: "use_unaligned=1"
- SECP256K1_TEST_ITERS: 32
- # Try to cover many configurations with just a tiny matrix.
- matrix:
- - env:
- ASM: auto
- - env:
- ASM: no
- ECMULTGENPRECISION: 2
- ECMULTWINDOW: 2
- matrix:
- - env:
- CC: clang
- - env:
- HOST: i686-linux-gnu
- CC: i686-linux-gnu-gcc
- test_script:
- - ./ci/cirrus.sh
- << : *CAT_LOGS
-
-# Memory sanitizers
-task:
- << : *LINUX_CONTAINER
- name: "MSan"
- env:
- ECDH: yes
- RECOVERY: yes
- SCHNORRSIG: yes
- CTIMETESTS: yes
- CC: clang
- SECP256K1_TEST_ITERS: 32
- ASM: no
- WITH_VALGRIND: no
- container:
- memory: 2G
- matrix:
- - env:
- CFLAGS: "-fsanitize=memory -g"
- - env:
- ECMULTGENPRECISION: 2
- ECMULTWINDOW: 2
- CFLAGS: "-fsanitize=memory -g -O3"
- test_script:
- - ./ci/cirrus.sh
- << : *CAT_LOGS
-
-task:
- name: "C++ -fpermissive (entire project)"
- << : *LINUX_CONTAINER
- env:
- CC: g++
- CFLAGS: -fpermissive -g
- CPPFLAGS: -DSECP256K1_CPLUSPLUS_TEST_OVERRIDE
- WERROR_CFLAGS:
- ECDH: yes
- RECOVERY: yes
- SCHNORRSIG: yes
- ELLSWIFT: yes
- test_script:
- - ./ci/cirrus.sh
- << : *CAT_LOGS
-
-task:
- name: "C++ (public headers)"
- << : *LINUX_CONTAINER
- test_script:
- - g++ -Werror include/*.h
- - clang -Werror -x c++-header include/*.h
- - /opt/msvc/bin/x64/cl.exe -c -WX -TP include/*.h
-
-task:
- name: "sage prover"
- << : *LINUX_CONTAINER
- test_script:
- - cd sage
- - sage prove_group_implementations.sage
-
-task:
- name: "x86_64: Windows (VS 2022)"
- windows_container:
- image: cirrusci/windowsservercore:visualstudio2022
- cpu: 4
- memory: 3840MB
- env:
- PATH: '%CIRRUS_WORKING_DIR%\build\src\RelWithDebInfo;%PATH%'
- x64_NATIVE_TOOLS: '"C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvars64.bat"'
- # Ignore MSBuild warning MSB8029.
- # See: https://learn.microsoft.com/en-us/visualstudio/msbuild/errors/msb8029?view=vs-2022
- IgnoreWarnIntDirInTempDetected: 'true'
- matrix:
- - env:
- BUILD_SHARED_LIBS: ON
- - env:
- BUILD_SHARED_LIBS: OFF
- git_show_script:
- # Print commit to allow reproducing the job outside of CI.
- - git show --no-patch
- configure_script:
- - '%x64_NATIVE_TOOLS%'
- - cmake -E env CFLAGS="/WX" cmake -A x64 -B build -DSECP256K1_ENABLE_MODULE_RECOVERY=ON -DSECP256K1_BUILD_EXAMPLES=ON -DBUILD_SHARED_LIBS=%BUILD_SHARED_LIBS%
- build_script:
- - '%x64_NATIVE_TOOLS%'
- - cmake --build build --config RelWithDebInfo -- -property:UseMultiToolTask=true;CL_MPcount=5
- check_script:
- - '%x64_NATIVE_TOOLS%'
- - ctest -C RelWithDebInfo --test-dir build -j 5
- - build\src\RelWithDebInfo\bench_ecmult.exe
- - build\src\RelWithDebInfo\bench_internal.exe
- - build\src\RelWithDebInfo\bench.exe