forked from bitcoin-core/secp256k1
-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
FROST: Add github workflow to build with CMake
- Loading branch information
1 parent
8ff47e4
commit 35baf5d
Showing
1 changed file
with
84 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,84 @@ | ||
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 | ||
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 \ | ||
.. | ||
cmake -- -j | ||
- name: Run FROST example | ||
continue-on-error: true | ||
id: run_frost_example | ||
run: | | ||
./examples/frost_example | ||
- name: Functional tests with -Werror, no code coverage | ||
continue-on-error: true | ||
id: tests_no_coverage | ||
run: | | ||
./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 |