141 lines
4.0 KiB
YAML
141 lines
4.0 KiB
YAML
name: CI
|
|
on:
|
|
pull_request:
|
|
push:
|
|
branches:
|
|
- '**'
|
|
tags-ignore:
|
|
- '**'
|
|
|
|
env:
|
|
### 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 examples.
|
|
EXAMPLES: 'yes'
|
|
|
|
jobs:
|
|
macos-native:
|
|
name: "x86_64: macOS Ventura"
|
|
# See: https://github.com/actions/runner-images#available-images.
|
|
runs-on: macos-13
|
|
|
|
env:
|
|
ASM: 'no'
|
|
WITH_VALGRIND: 'no'
|
|
CTIMETESTS: 'no'
|
|
CC: 'clang'
|
|
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
env_vars:
|
|
- { WIDEMUL: 'int64', RECOVERY: 'yes', ECDH: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes' }
|
|
- { WIDEMUL: 'int64', RECOVERY: 'yes', ECDH: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes', CC: 'gcc' }
|
|
- { WIDEMUL: 'int128_struct', ECMULTGENPRECISION: 2, ECMULTWINDOW: 4 }
|
|
- { WIDEMUL: 'int128', ECDH: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes' }
|
|
- { WIDEMUL: 'int128', RECOVERY: 'yes', SCHNORRSIG: 'yes' }
|
|
- { WIDEMUL: 'int128', RECOVERY: 'yes', ECDH: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes', CC: 'gcc' }
|
|
- { WIDEMUL: 'int128', RECOVERY: 'yes', ECDH: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes', CPPFLAGS: '-DVERIFY' }
|
|
- BUILD: 'distcheck'
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Install Homebrew packages
|
|
env:
|
|
HOMEBREW_NO_AUTO_UPDATE: 1
|
|
HOMEBREW_NO_INSTALL_CLEANUP: 1
|
|
run: |
|
|
brew install automake libtool gcc
|
|
ln -s $(brew --prefix gcc)/bin/gcc-?? /usr/local/bin/gcc
|
|
|
|
- name: CI script
|
|
env: ${{ matrix.env_vars }}
|
|
run: ./ci/cirrus.sh
|
|
|
|
- run: cat tests.log || true
|
|
if: ${{ always() }}
|
|
- run: cat noverify_tests.log || true
|
|
if: ${{ always() }}
|
|
- run: cat exhaustive_tests.log || true
|
|
if: ${{ always() }}
|
|
- run: cat ctime_tests.log || true
|
|
if: ${{ always() }}
|
|
- run: cat bench.log || true
|
|
if: ${{ always() }}
|
|
- run: cat config.log || true
|
|
if: ${{ always() }}
|
|
- run: cat test_env.log || true
|
|
if: ${{ always() }}
|
|
- name: CI env
|
|
run: env
|
|
if: ${{ always() }}
|
|
|
|
win64-native:
|
|
name: "x86_64: Windows, VS 2022"
|
|
# See: https://github.com/actions/runner-images#available-images.
|
|
runs-on: windows-2022
|
|
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
lib_type: ['shared', 'static']
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Generate buildsystem
|
|
run: cmake -E env CFLAGS="/WX" cmake -B build -A x64 -DSECP256K1_ENABLE_MODULE_RECOVERY=ON -DSECP256K1_BUILD_EXAMPLES=ON -DBUILD_SHARED_LIBS=${{ matrix.lib_type == 'shared' && 'ON' || 'OFF' }}
|
|
|
|
- name: Build
|
|
run: cmake --build build --config RelWithDebInfo -- /p:UseMultiToolTask=true /maxCpuCount
|
|
|
|
- name: Check
|
|
run: |
|
|
ctest -C RelWithDebInfo --test-dir build -j ([int]$env:NUMBER_OF_PROCESSORS + 1)
|
|
build\src\RelWithDebInfo\bench_ecmult.exe
|
|
build\src\RelWithDebInfo\bench_internal.exe
|
|
build\src\RelWithDebInfo\bench.exe
|
|
|
|
sage:
|
|
name: "SageMath prover"
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: sagemath/sagemath:latest
|
|
options: --user root
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v3
|
|
|
|
- name: CI script
|
|
run: |
|
|
cd sage
|
|
sage prove_group_implementations.sage
|