From a1638a769929e0068164cc0e1c0c353b356ba18f Mon Sep 17 00:00:00 2001 From: Gene Hoffman <30377676+hoffmang9@users.noreply.github.com> Date: Wed, 21 Jun 2023 19:30:13 -0700 Subject: [PATCH] Add back nightly testing of blst dependency (#410) * Add back nightly testing of blst dependency * missing endif () * temporarily run on all pushes and PRs to test * yaml fixup * Fix origin/main tag issue * blst still uses master * windows fixes, less linux cmake * more windows tweaks * windows env fix, try runtest again * Fix the Windows flow and improve the others (#413) * Try setting the env at the workflow level * move to env: for all steps * Fix Linux build when using blst's main. Discovered by Earle. (#415) * Remove regular on PR for nightly and on-demand --------- Co-authored-by: Amine Khaldi --- .github/workflows/build-blst-nightly.yml | 80 ++++++++++++++++++++++++ CMakeLists.txt | 9 ++- 2 files changed, 87 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/build-blst-nightly.yml diff --git a/.github/workflows/build-blst-nightly.yml b/.github/workflows/build-blst-nightly.yml new file mode 100644 index 000000000..799fdc736 --- /dev/null +++ b/.github/workflows/build-blst-nightly.yml @@ -0,0 +1,80 @@ +name: Build and Test with blst Nightly + +on: + schedule: + - cron: "0 11 * * *" + workflow_dispatch: + +concurrency: + # SHA is added to the end if on `main` to let all main workflows run + group: ${{ github.ref }}-${{ github.workflow }}-${{ github.event_name }}-${{ (github.ref == 'refs/heads/main') && github.sha || '' }} + cancel-in-progress: true + +jobs: + build_with_blst_main: + name: Build and Test with blst Nightly + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [macos-latest, ubuntu-latest, windows-latest] + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Ubuntu build C++ and test blst at origin/main + if: startsWith(matrix.os, 'ubuntu') + # blst is still using master instead of main + env: + BLST_MAIN: 1 + run: | + echo "blst origin/main commit:" + curl -H "application/vnd.github.v3.sha" \ + https://api.github.com/repos/supranational/blst/commits/master | \ + head -10 + cmake -B build . + cmake --build build -- -j 6 + echo "Running ./src/runtest" + ./build/src/runtest + + - name: Mac OS build C++ and test + if: startsWith(matrix.os, 'macos') + env: + BLST_MAIN: 1 + MACOSX_DEPLOYMENT_TARGET: 10.14 + run: | + cmake -B build . + cmake --build build -- -j 6 + echo "Running ./src/runtest" + ./build/src/runtest + + - name: Windows build C++ and test + if: startsWith(matrix.os, 'windows') + env: + BLST_MAIN: 1 + run: | + cmake -B build . + cmake --build build + echo "Running runtest" + build\src\Debug\runtest.exe + + - name: Install Python + uses: actions/setup-python@v4 + with: + python-version: '3.9' + + - name: Test pure python implementation + run: | + python python-impl/impl-test.py + + - name: Install emsdk + uses: mymindstorm/setup-emsdk@v11 + + - name: Test javascript bindings + env: + BLST_MAIN: 1 + run: | + emcc -v + sh emsdk_build.sh + sh js_test.sh diff --git a/CMakeLists.txt b/CMakeLists.txt index c1553c3e9..f2154bad4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -49,8 +49,13 @@ set(SODIUM_DISABLE_TESTS "on" CACHE STRING "") set(SODIUM_CHIA_MINIMAL "on" CACHE STRING "") FetchContent_MakeAvailable(Sodium) -set(BLST_GIT_TAG "a8cd361c9f671577aeab3f074098443af92a53fc") -set(BLST_REPOSITORY "https://github.com/supranational/blst") +if (DEFINED ENV{BLST_MAIN}) + set(BLST_GIT_TAG "origin/master") +else () + # This is currently anchored to upstream aecdcae7956f542fbee2392c1f0feb0a8ac41dc5 + set(BLST_GIT_TAG "a8cd361c9f671577aeab3f074098443af92a53fc") +endif () +set(BLST_REPOSITORY "https://github.com/supranational/blst.git") message(STATUS "blst will be built from: ${BLST_GIT_TAG} and repository ${BLST_REPOSITORY}")