Skip to content

Commit

Permalink
FROST: Add github workflow to build with CMake
Browse files Browse the repository at this point in the history
  • Loading branch information
matteonardelli committed Nov 22, 2023
1 parent 8ff47e4 commit 80abae5
Showing 1 changed file with 76 additions and 0 deletions.
76 changes: 76 additions & 0 deletions .github/workflows/build-with-cmake.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
name: Build using cmake

# In secp256k1 some assertions are not exactly equal when coverage is enabled
# and when it is not. Hence, it is better to run the two cases separately.

on:
push:
branches:
- frost
pull_request:
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

jobs:
build-with-cmake:
runs-on: ubuntu-22.04
# Use fedora:38 to compile using gcc-13
container:
image: fedora:38
steps:
- name: Install build dependencies
run: |
dnf install -y \
autoconf \
automake \
gcc \
gcovr \
libtool \
pkg-config \
cmake
- uses: actions/checkout@v3
with:
fetch-depth: 1
- name: Create and enter build directory
continue-on-error: false
run: |
mkdir _build
cd _build
- name: Build with CMake
run: |
cmake -DCMAKE_C_FLAGS="-Werror" -DCMAKE_BUILD_TYPE="Release" -DSECP256K1_EXPERIMENTAL=ON -DSECP256K1_ENABLE_MODULE_FROST=ON -DSECP256K1_BUILD_BENCHMARK=OFF -DSECP256K1_BUILD_EXAMPLES=ON -DSECP256K1_BUILD_EXHAUSTIVE_TESTS=OFF -DSECP256K1_BUILD_TESTS=ON .
make -j
- name: Run FROST example
continue-on-error: true
id: run_frost_example
run: |
./_build/examples/frost_example
- name: Functional tests with -Werror, no code coverage
continue-on-error: true
id: tests_no_coverage
run: |
./_build/src/tests
- name: Summarize outcomes. Fail if any step failed.
run: |
# summary
RED='\033[0;31m'
GREEN='\033[0;32m'
NC='\033[0m' # No Color
echo -n "FROST example: "
if [[ ${{ steps.run_frost_example.outcome }} == "success" ]]; then
printf "${GREEN}SUCCESS${NC}\n"
else
printf "${RED}FAIL${NC} (${{ steps.run_frost_example.outcome }}), please check\n"
fi
echo -n "Functional tests with -Werror, no code coverage: "
if [[ ${{ steps.tests_no_coverage.outcome }} == "success" ]]; then
printf "${GREEN}SUCCESS${NC}\n"
else
printf "${RED}FAIL${NC} (${{ steps.tests_no_coverage.outcome }}), please check\n"
fi
if [[ ${{ steps.tests_with_coverage.outcome }} != "success" ]] || [[ ${{ steps.tests_no_coverage.outcome }} != "success" ]]; then
exit 1
fi

0 comments on commit 80abae5

Please sign in to comment.