Skip to content

a fix (continuation) #248

a fix (continuation)

a fix (continuation) #248

Workflow file for this run

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:
docker_wine_cache:
name: "Build MinGW/MSVC Debian image"
runs-on: ubuntu-latest
steps:
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Build container
uses: docker/build-push-action@v4
with:
file: ./ci/linux-debian-wine.Dockerfile
tags: ci-image
push: false
load: false
cache-from: type=gha
cache-to: type=gha,mode=min
mingw_debian:
name: ${{ matrix.configuration.job_name }}
runs-on: ubuntu-latest
needs: docker_wine_cache
env:
WRAPPER_CMD: 'wine'
WITH_VALGRIND: 'no'
ECDH: 'yes'
RECOVERY: 'yes'
SCHNORRSIG: 'yes'
CTIMETESTS: 'no'
strategy:
fail-fast: false
matrix:
configuration:
- job_name: 'x86_64 (mingw32-w64): Windows (Debian stable, Wine)'
env_vars:
HOST: 'x86_64-w64-mingw32'
VAR1: 'value_one'
- job_name: 'i686 (mingw32-w64): Windows (Debian stable, Wine)'
env_vars:
HOST: 'i686-w64-mingw32'
VAR2: 'value two'
steps:
- name: Checkout
uses: actions/checkout@v3
- name: CI script
uses: ./.github/actions/run-in-docker-action
with:
dockerfile: ./ci/linux-debian-wine.Dockerfile
tag: ci-image
- name: tests.log
run: |
cat tests.log || true
if: ${{ always() }}
- name: noverify_tests.log
run: |
cat noverify_tests.log || true
if: ${{ always() }}
- name: exhaustive_tests.log
run: |
cat exhaustive_tests.log || true
if: ${{ always() }}
- name: ctime_tests.log
run: |
cat ctime_tests.log || true
if: ${{ always() }}
- name: bench.log
run: |
cat bench.log || true
if: ${{ always() }}
- name: config.log
run: |
cat config.log || true
if: ${{ always() }}
- name: test_env.log
run: |
cat test_env.log || true
if: ${{ always() }}
- name: CI env
run: env
if: ${{ always() }}
# msvc_debian:
# name: ${{ matrix.configuration.job_name }}
# runs-on: ubuntu-latest
# needs: docker_wine_cache
# 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'
# strategy:
# fail-fast: false
# matrix:
# configuration:
# - job_name: 'x86_64 (MSVC): Windows (Debian stable, Wine)'
# env_var:
# - job_name: 'x86_64 (MSVC): Windows (Debian stable, Wine, int128_struct)'
# env_var: 'WIDEMUL=int128_struct'
# - job_name: 'x86_64 (MSVC): Windows (Debian stable, Wine, int128_struct with __(u)mulh)'
# env_var: 'WIDEMUL=int128_struct CPPFLAGS=-DSECP256K1_MSVC_MULH_TEST_OVERRIDE'
# - job_name: 'i686 (MSVC): Windows (Debian stable, Wine)'
# env_var: 'HOST=i686-w64-mingw32 CC=/opt/msvc/bin/x86/cl AR=/opt/msvc/bin/x86/lib NM="/opt/msvc/bin/x86/dumpbin -symbols -headers"'
# steps:
# - name: Checkout
# uses: actions/checkout@v3
# - name: Set up Docker Buildx
# uses: docker/setup-buildx-action@v2
# - name: Build container
# uses: docker/build-push-action@v4
# with:
# context: .
# file: ./ci/linux-debian-wine.Dockerfile
# tags: ci-image
# push: false
# load: true
# cache-from: type=gha
# - name: Run test script
# uses: addnab/docker-run-action@v3
# with:
# image: ci-image
# options: -v ${{ github.workspace }}:${{ github.workspace }}
# run: |
# export \
# HOST="${{ env.HOST }}" \
# WRAPPER_CMD="${{ env.WRAPPER_CMD }}" \
# WERROR_CFLAGS="${{ env.WERROR_CFLAGS }}" \
# MAKEFLAGS="${{ env.MAKEFLAGS }}" \
# BUILD="${{ env.BUILD }}" \
# ECMULTWINDOW="${{ env.ECMULTWINDOW }}" \
# ECMULTGENPRECISION="${{ env.ECMULTGENPRECISION }}" \
# ASM="${{ env.ASM }}" \
# WIDEMUL="${{ env.WIDEMUL }}" \
# WITH_VALGRIND="${{ env.WITH_VALGRIND }}" \
# EXTRAFLAGS="${{ env.EXTRAFLAGS }}" \
# EXPERIMENTAL="${{ env.EXPERIMENTAL }}" \
# ECDH="${{ env.ECDH }}" \
# RECOVERY="${{ env.RECOVERY }}" \
# SCHNORRSIG="${{ env.SCHNORRSIG }}" \
# ELLSWIFT="${{ env.ELLSWIFT }}" \
# SECP256K1_TEST_ITERS="${{ env.SECP256K1_TEST_ITERS }}" \
# BENCH="${{ env.BENCH }}" \
# SECP256K1_BENCH_ITERS="${{ env.SECP256K1_BENCH_ITERS }}" \
# CTIMETESTS="${{ env.CTIMETESTS }}" \
# EXAMPLES="${{ env.EXAMPLES }}" \
# CC="${{ env.CC }}" \
# AR="${{ env.AR }}" \
# NM="${{ env.NM }}" \
# CFLAGS="${{ env.CFLAGS }}" \
# LDFLAGS="${{ env.LDFLAGS }}" \
# ${{ matrix.configuration.env_var }}
# git config --global --add safe.directory ${{ github.workspace }}
# cd ${{ github.workspace }}
# ./ci/cirrus.sh
# cat tests.log || true
# cat noverify_tests.log || true
# cat exhaustive_tests.log || true
# cat ctime_tests.log || true
# cat bench.log || true
# cat config.log || true
# cat test_env.log || true
# env
# 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