feat: parity circuits #8071
Workflow file for this run
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
name: Report gates diff | |
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
jobs: | |
compare_protocol_circuits_gates: | |
if: "!startsWith(github.head_ref, 'release-please--')" | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v3 | |
- name: Install bleeding edge cmake | |
run: | | |
sudo apt -y remove --purge cmake | |
sudo snap install cmake --classic | |
- name: Create Build Environment | |
run: | | |
sudo apt-get update | |
sudo apt-get -y install ninja-build | |
- name: Install Clang16 | |
run: | | |
wget https://github.com/llvm/llvm-project/releases/download/llvmorg-16.0.0/clang+llvm-16.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz | |
tar -xvf clang+llvm-16.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz | |
sudo cp clang+llvm-16.0.0-x86_64-linux-gnu-ubuntu-18.04/bin/* /usr/local/bin/ | |
sudo cp -r clang+llvm-16.0.0-x86_64-linux-gnu-ubuntu-18.04/include/* /usr/local/include/ | |
sudo cp -r clang+llvm-16.0.0-x86_64-linux-gnu-ubuntu-18.04/lib/* /usr/local/lib/ | |
sudo cp -r clang+llvm-16.0.0-x86_64-linux-gnu-ubuntu-18.04/share/* /usr/local/share/ | |
rm -rf clang+llvm-16.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz clang+llvm-16.0.0-x86_64-linux-gnu-ubuntu-18.04 | |
- uses: actions/cache@v3 | |
with: | |
path: | | |
barretenberg/cpp/build | |
barretenberg/cpp/build-wasm | |
barretenberg/cpp/build-threads | |
key: ${{ runner.os }}-bb-build | |
- name: Compile Barretenberg | |
run: | | |
cd barretenberg/cpp | |
cmake --preset default -DCMAKE_CXX_FLAGS="-stdlib=libc++" -DCMAKE_BUILD_TYPE=RelWithAssert -DTARGET_ARCH=westmere | |
cmake --build --preset default --target bb | |
- name: Install noirup | |
run: | | |
curl -L $INSTALL_URL | bash | |
echo "${HOME}/.nargo/bin" >> $GITHUB_PATH | |
env: | |
INSTALL_URL: https://raw.githubusercontent.com/noir-lang/noirup/main/install | |
NOIRUP_BIN_URL: https://raw.githubusercontent.com/noir-lang/noirup/main/noirup | |
- uses: actions/cache@v3 | |
with: | |
path: | | |
~/.cargo/bin/ | |
~/.cargo/registry/index/ | |
~/.cargo/registry/cache/ | |
~/.cargo/git/db/ | |
key: ${{ runner.os }}-cargo | |
- name: Install Barretenberg dependencies | |
run: sudo apt update && sudo apt install clang lld cmake libomp-dev | |
- name: Install nargo from source with noirup | |
run: noirup $toolchain | |
env: | |
toolchain: --path ./noir/noir-repo | |
- name: Check nargo installation | |
run: nargo --version | |
- name: Generate gates report | |
working-directory: ./noir-projects/noir-protocol-circuits | |
run: | | |
nargo info --json --silence-warnings > protocol_circuits_report.json | |
mv protocol_circuits_report.json ../../protocol_circuits_report.json | |
env: | |
NARGO_BACKEND_PATH: ../../barretenberg/cpp/build/bin/bb | |
- name: Compare gates reports | |
id: gates_diff | |
uses: TomAFrench/noir-gates-diff@e7cf131b7e7f044c01615f93f0b855f65ddc02d4 | |
with: | |
report: protocol_circuits_report.json | |
summaryQuantile: 0 # Display any diff in gate count | |
- name: Add gates diff to sticky comment | |
if: github.event_name == 'pull_request' || github.event_name == 'pull_request_target' | |
uses: marocchino/sticky-pull-request-comment@v2 | |
with: | |
# delete the comment in case changes no longer impact circuit sizes | |
delete: ${{ !steps.gates_diff.outputs.markdown }} | |
message: ${{ steps.gates_diff.outputs.markdown }} |