diff --git a/.github/workflows/bb-msan.yml b/.github/workflows/bb-msan.yml deleted file mode 100644 index fe30b2193a4..00000000000 --- a/.github/workflows/bb-msan.yml +++ /dev/null @@ -1,25 +0,0 @@ -# Checks bb prover with memory sanitizer -name: BB MSAN -on: - pull_request: - types: [opened, synchronize, reopened, labeled] - paths: - - 'barretenberg/**' - workflow_dispatch: - inputs: {} -# unlike most jobs, we have no concurrency limits - note that we should have spare capacity (of total 1000 concurrency) -# to run a good number of these, but we should still be mindful that we don't queue, say, dozens of these. -jobs: - bb-msan-check: - if: github.event_name == 'workflow_dispatch' || contains(github.event.pull_request.labels.*.name, 'bb-msan-check') - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ github.event.pull_request.head.sha }} - - uses: earthly/actions-setup@v1 - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - - name: "Barretenberg Prover MSAN Check" - timeout-minutes: 720 # 12 hour timeout. Yes, it's slow, and we just want to use the github runner. - run: earthly ./barretenberg/cpp/+preset-msan-check diff --git a/.github/workflows/bb-sanitizers.yml b/.github/workflows/bb-sanitizers.yml new file mode 100644 index 00000000000..84b2c61d767 --- /dev/null +++ b/.github/workflows/bb-sanitizers.yml @@ -0,0 +1,98 @@ +# Checks bb (barretenberg prover library) prover with sanitizers +# Unlike most jobs uses free 4 core github runners of which we have lots of capacity (of total 1000 concurrency). +name: BB MSAN +on: + push: + branches: + - master + - "*/bb-sanitizers*" + pull_request: + types: [opened, synchronize, reopened, labeled] + paths: + - 'barretenberg/**' + workflow_dispatch: + inputs: {} + +concurrency: + # force parallelism in master + group: ci-${{ github.ref_name == 'master' && github.run_id || github.ref_name }} + cancel-in-progress: true +jobs: + # acts as prover performance baseline + bb-baseline: + if: github.event_name != 'pull_request' || contains(github.event.pull_request.labels.*.name, 'bb-msan-check') + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ github.event.pull_request.head.sha }} + - uses: earthly/actions-setup@v1 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + - name: "Barretenberg Baseline Performance Check" + run: earthly --no-cache ./barretenberg/cpp/+preset-check --preset=clang16 + + # memory sanitzer for prover + bb-msan-check: + if: github.event_name != 'pull_request' || contains(github.event.pull_request.labels.*.name, 'bb-msan-check') + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ github.event.pull_request.head.sha }} + - uses: earthly/actions-setup@v1 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + - name: "Barretenberg Prover MSAN Check" + + run: earthly --no-cache ./barretenberg/cpp/+preset-msan-check + + # address sanitzer for prover + bb-asan-check: + if: github.event_name != 'pull_request' || contains(github.event.pull_request.labels.*.name, 'bb-asan-check') + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ github.event.pull_request.head.sha }} + - uses: earthly/actions-setup@v1 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + - name: "Barretenberg Prover ASAN Check" + timeout-minutes: 720 # 12 hour timeout (proving) + run: earthly --no-cache ./barretenberg/cpp/+preset-check --preset=asan + + # address sanitzer for prover + bb-tsan-check: + if: github.event_name != 'pull_request' || contains(github.event.pull_request.labels.*.name, 'bb-tsan-check') + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ github.event.pull_request.head.sha }} + - uses: earthly/actions-setup@v1 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + - name: "Barretenberg Prover TSAN Check" + timeout-minutes: 720 # 12 hour timeout (proving) + run: earthly --no-cache ./barretenberg/cpp/+preset-check --preset=tsan + + # undefined behavior sanitzer for prover + bb-ubsan-check: + if: github.event_name != 'pull_request' || contains(github.event.pull_request.labels.*.name, 'bb-ubsan-check') + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ github.event.pull_request.head.sha }} + - uses: earthly/actions-setup@v1 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + - name: "Barretenberg Prover TSAN Check" + timeout-minutes: 720 # 12 hour timeout (proving) + run: earthly --no-cache ./barretenberg/cpp/+preset-check --preset=ubsan diff --git a/.github/workflows/publish-aztec-packages.yml b/.github/workflows/publish-aztec-packages.yml index 9bc5f3e88fd..1fb170f4f99 100644 --- a/.github/workflows/publish-aztec-packages.yml +++ b/.github/workflows/publish-aztec-packages.yml @@ -5,7 +5,6 @@ on: branches: - master - "*/release-master*" - - ludamad-patch-2 workflow_dispatch: inputs: tag: diff --git a/barretenberg/cpp/Earthfile b/barretenberg/cpp/Earthfile index 72b3fb7f218..390a7af6544 100644 --- a/barretenberg/cpp/Earthfile +++ b/barretenberg/cpp/Earthfile @@ -107,7 +107,15 @@ preset-msan-check: # install SRS needed for proving COPY --dir ./srs_db/+build/. srs_db RUN echo "Warning: If ./bin/client_ivc_tests is not found, there may be build failures above." - RUN cd build && ./bin/client_ivc_tests --gtest_also_run_disabled_tests + RUN cd build && ./bin/client_ivc_tests --gtest_filter="*BasicStructured" + +preset-check: + ARG preset + FROM +source + RUN cmake --preset $preset -Bbuild && cmake --build build --target client_ivc_tests + # install SRS needed for proving + COPY --dir ./srs_db/+build/. srs_db + RUN cd build && ./bin/client_ivc_tests --gtest_filter="*BasicStructured" preset-wasm: ARG TARGETARCH