name: C++/CUDA on: pull_request: branches: - main - V2 push: branches: - main - V2 concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: check-changed-files: uses: ./.github/workflows/check-changed-files.yml check-format: name: Check Code Format runs-on: ubuntu-22.04 needs: check-changed-files steps: - name: Checkout uses: actions/checkout@v4 - name: Check clang-format if: needs.check-changed-files.outputs.cpp_cuda == 'true' run: if [[ $(find ./ \( -path ./icicle/build -prune -o -path ./**/target -prune -o -path ./examples -prune \) -iname *.h -or -iname *.cuh -or -iname *.cu -or -iname *.c -or -iname *.cpp | xargs clang-format --dry-run -ferror-limit=1 -style=file 2>&1) ]]; then echo "Please run clang-format"; exit 1; fi test-linux-curve: name: Test on Linux runs-on: [self-hosted, Linux, X64, icicle] needs: [check-changed-files, check-format] strategy: matrix: curve: [bn254, bls12_381, bls12_377, bw6_761] steps: - name: Checkout Repo uses: actions/checkout@v4 - name: Build curve working-directory: ./icicle if: needs.check-changed-files.outputs.cpp_cuda == 'true' run: | mkdir -p build && rm -rf build/* cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=ON -DCURVE=${{ matrix.curve }} -DG2=ON -S . -B build cmake --build build -j - name: Run C++ curve Tests working-directory: ./icicle/build/tests if: needs.check-changed-files.outputs.cpp_cuda == 'true' run: ctest test-linux-field: name: Test on Linux runs-on: [self-hosted, Linux, X64, icicle] needs: [check-changed-files, check-format] strategy: matrix: field: [babybear] steps: - name: Checkout Repo uses: actions/checkout@v4 - name: Build field working-directory: ./icicle if: needs.check-changed-files.outputs.cpp_cuda == 'true' run: | mkdir -p build && rm -rf build/* cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=ON -DFIELD=${{ matrix.field }} -DEXT_FIELD=ON -S . -B build cmake --build build -j - name: Run C++ field Tests working-directory: ./icicle/build/tests if: needs.check-changed-files.outputs.cpp_cuda == 'true' run: ctest