diff --git a/.github/actions/download-nargo/action.yml b/.github/actions/download-nargo/action.yml new file mode 100644 index 00000000000..49c8b1d0bd8 --- /dev/null +++ b/.github/actions/download-nargo/action.yml @@ -0,0 +1,18 @@ +name: Download Nargo +description: Downloads the nargo binary from an artifact and adds it to the path + +runs: + using: composite + steps: + - name: Download nargo binary + uses: actions/download-artifact@v4 + with: + name: nargo + path: ./nargo + + - name: Set nargo on PATH + shell: bash + run: | + nargo_binary="${{ github.workspace }}/nargo/nargo" + chmod +x $nargo_binary + echo "$(dirname $nargo_binary)" >> $GITHUB_PATH diff --git a/.github/workflows/formatting.yml b/.github/workflows/formatting.yml index 4e836ef2493..34216c22e01 100644 --- a/.github/workflows/formatting.yml +++ b/.github/workflows/formatting.yml @@ -123,18 +123,7 @@ jobs: uses: actions/checkout@v4 - name: Download nargo binary - uses: actions/download-artifact@v4 - with: - name: nargo - path: ./nargo - - - name: Set nargo on PATH - run: | - nargo_binary="${{ github.workspace }}/nargo/nargo" - chmod +x $nargo_binary - echo "$(dirname $nargo_binary)" >> $GITHUB_PATH - export PATH="$PATH:$(dirname $nargo_binary)" - nargo -V + uses: ./.github/actions/download-nargo - name: Format stdlib working-directory: ./noir_stdlib diff --git a/.github/workflows/reports.yml b/.github/workflows/reports.yml index 2a1dbc078ac..1ac775591a6 100644 --- a/.github/workflows/reports.yml +++ b/.github/workflows/reports.yml @@ -54,18 +54,7 @@ jobs: echo "$HOME/.bb/" >> $GITHUB_PATH - name: Download nargo binary - uses: actions/download-artifact@v4 - with: - name: nargo - path: ./nargo - - - name: Set nargo on PATH - run: | - nargo_binary="${{ github.workspace }}/nargo/nargo" - chmod +x $nargo_binary - echo "$(dirname $nargo_binary)" >> $GITHUB_PATH - export PATH="$PATH:$(dirname $nargo_binary)" - nargo -V + uses: ./.github/actions/download-nargo - name: Generate gates report working-directory: ./test_programs @@ -100,18 +89,7 @@ jobs: - uses: actions/checkout@v4 - name: Download nargo binary - uses: actions/download-artifact@v4 - with: - name: nargo - path: ./nargo - - - name: Set nargo on PATH - run: | - nargo_binary="${{ github.workspace }}/nargo/nargo" - chmod +x $nargo_binary - echo "$(dirname $nargo_binary)" >> $GITHUB_PATH - export PATH="$PATH:$(dirname $nargo_binary)" - nargo -V + uses: ./.github/actions/download-nargo - name: Generate Brillig bytecode size report working-directory: ./test_programs @@ -160,18 +138,7 @@ jobs: - uses: actions/checkout@v4 - name: Download nargo binary - uses: actions/download-artifact@v4 - with: - name: nargo - path: ./nargo - - - name: Set nargo on PATH - run: | - nargo_binary="${{ github.workspace }}/nargo/nargo" - chmod +x $nargo_binary - echo "$(dirname $nargo_binary)" >> $GITHUB_PATH - export PATH="$PATH:$(dirname $nargo_binary)" - nargo -V + uses: ./.github/actions/download-nargo - name: Generate Brillig execution report working-directory: ./test_programs @@ -220,18 +187,7 @@ jobs: - uses: actions/checkout@v4 - name: Download nargo binary - uses: actions/download-artifact@v4 - with: - name: nargo - path: ./nargo - - - name: Set nargo on PATH - run: | - nargo_binary="${{ github.workspace }}/nargo/nargo" - chmod +x $nargo_binary - echo "$(dirname $nargo_binary)" >> $GITHUB_PATH - export PATH="$PATH:$(dirname $nargo_binary)" - nargo -V + uses: ./.github/actions/download-nargo - name: Generate Memory report working-directory: ./test_programs @@ -272,18 +228,7 @@ jobs: - uses: actions/checkout@v4 - name: Download nargo binary - uses: actions/download-artifact@v4 - with: - name: nargo - path: ./nargo - - - name: Set nargo on PATH - run: | - nargo_binary="${{ github.workspace }}/nargo/nargo" - chmod +x $nargo_binary - echo "$(dirname $nargo_binary)" >> $GITHUB_PATH - export PATH="$PATH:$(dirname $nargo_binary)" - nargo -V + uses: ./.github/actions/download-nargo - name: Generate Compilation report working-directory: ./test_programs @@ -336,29 +281,19 @@ jobs: name: External repo compilation and execution reports - ${{ matrix.project.repo }}/${{ matrix.project.path }} steps: - - name: Download nargo binary - uses: actions/download-artifact@v4 - with: - name: nargo - path: ./nargo - - - name: Set nargo on PATH - run: | - nargo_binary="${{ github.workspace }}/nargo/nargo" - chmod +x $nargo_binary - echo "$(dirname $nargo_binary)" >> $GITHUB_PATH - export PATH="$PATH:$(dirname $nargo_binary)" - nargo -V - - uses: actions/checkout@v4 with: path: scripts sparse-checkout: | + .github/actions/download-nargo/action.yml test_programs/compilation_report.sh test_programs/execution_report.sh test_programs/parse_time.sh sparse-checkout-cone-mode: false + - name: Download nargo binary + uses: scripts/.github/actions/download-nargo + - name: Checkout uses: actions/checkout@v4 with: @@ -451,27 +386,17 @@ jobs: name: External repo memory report - ${{ matrix.project.repo }}/${{ matrix.project.path }} steps: - - name: Download nargo binary - uses: actions/download-artifact@v4 - with: - name: nargo - path: ./nargo - - - name: Set nargo on PATH - run: | - nargo_binary="${{ github.workspace }}/nargo/nargo" - chmod +x $nargo_binary - echo "$(dirname $nargo_binary)" >> $GITHUB_PATH - export PATH="$PATH:$(dirname $nargo_binary)" - nargo -V - - uses: actions/checkout@v4 with: path: scripts sparse-checkout: | + ./.github/actions/download-nargo/action.yml test_programs/memory_report.sh test_programs/parse_memory.sh sparse-checkout-cone-mode: false + + - name: Download nargo binary + uses: ./scripts/.github/actions/download-nargo - name: Checkout uses: actions/checkout@v4 diff --git a/.github/workflows/test-js-packages.yml b/.github/workflows/test-js-packages.yml index 498d5160e27..b92b2ae2030 100644 --- a/.github/workflows/test-js-packages.yml +++ b/.github/workflows/test-js-packages.yml @@ -13,6 +13,25 @@ concurrency: cancel-in-progress: true jobs: + critical-library-list: + name: Load critical library list + runs-on: ubuntu-22.04 + outputs: + libraries: ${{ steps.get_critical_libraries.outputs.libraries }} + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Build list of libraries + id: get_critical_libraries + run: | + LIBRARIES=$(yq ./EXTERNAL_NOIR_LIBRARIES.yml -o json | jq -c '.libraries | map({ repo, path: (.path // ""), timeout:(.timeout // 2), nargo_args })') + echo "libraries=$LIBRARIES" + echo "libraries=$LIBRARIES" >> $GITHUB_OUTPUT + env: + GH_TOKEN: ${{ github.token }} + yarn-lock: runs-on: ubuntu-22.04 timeout-minutes: 30 @@ -244,10 +263,7 @@ jobs: uses: actions/checkout@v4 - name: Download nargo binary - uses: actions/download-artifact@v4 - with: - name: nargo - path: ./nargo + uses: ./.github/actions/download-nargo - name: Download artifact uses: actions/download-artifact@v4 @@ -261,14 +277,6 @@ jobs: name: noirc_abi_wasm path: ./tooling/noirc_abi_wasm - - name: Set nargo on PATH - run: | - nargo_binary="${{ github.workspace }}/nargo/nargo" - chmod +x $nargo_binary - echo "$(dirname $nargo_binary)" >> $GITHUB_PATH - export PATH="$PATH:$(dirname $nargo_binary)" - nargo -V - - name: Install Yarn dependencies uses: ./.github/actions/setup @@ -300,17 +308,7 @@ jobs: uses: ./.github/actions/setup - name: Download nargo binary - uses: actions/download-artifact@v4 - with: - name: nargo - path: ./nargo - - - name: Set nargo on PATH - run: | - nargo_binary="${{ github.workspace }}/nargo/nargo" - chmod +x $nargo_binary - echo "$(dirname $nargo_binary)" >> $GITHUB_PATH - export PATH="$PATH:$(dirname $nargo_binary)" + uses: ./.github/actions/download-nargo - name: Build fixtures run: yarn workspace @noir-lang/noir_wasm test:build_fixtures @@ -335,10 +333,7 @@ jobs: uses: actions/checkout@v4 - name: Download nargo binary - uses: actions/download-artifact@v4 - with: - name: nargo - path: ./nargo + uses: ./.github/actions/download-nargo - name: Download acvm_js package artifact uses: actions/download-artifact@v4 @@ -352,14 +347,6 @@ jobs: name: noirc_abi_wasm path: ./tooling/noirc_abi_wasm - - name: Set nargo on PATH - run: | - nargo_binary="${{ github.workspace }}/nargo/nargo" - chmod +x $nargo_binary - echo "$(dirname $nargo_binary)" >> $GITHUB_PATH - export PATH="$PATH:$(dirname $nargo_binary)" - nargo -V - - name: Install Yarn dependencies uses: ./.github/actions/setup @@ -388,10 +375,7 @@ jobs: echo "$HOME/.bb/" >> $GITHUB_PATH - name: Download nargo binary - uses: actions/download-artifact@v4 - with: - name: nargo - path: ./nargo + uses: ./.github/actions/download-nargo - name: Download acvm_js package artifact uses: actions/download-artifact@v4 @@ -411,14 +395,6 @@ jobs: name: noirc_abi_wasm path: ./tooling/noirc_abi_wasm - - name: Set nargo on PATH - run: | - nargo_binary="${{ github.workspace }}/nargo/nargo" - chmod +x $nargo_binary - echo "$(dirname $nargo_binary)" >> $GITHUB_PATH - export PATH="$PATH:$(dirname $nargo_binary)" - nargo -V - - name: Install Yarn dependencies uses: ./.github/actions/setup @@ -493,25 +469,13 @@ jobs: with: version: nightly-8660e5b941fe7f4d67e246cfd3dafea330fb53b1 - - name: Install `bb` run: | ./scripts/install_bb.sh echo "$HOME/.bb/" >> $GITHUB_PATH - name: Download nargo binary - uses: actions/download-artifact@v4 - with: - name: nargo - path: ./nargo - - - name: Set nargo on PATH - run: | - nargo_binary="${{ github.workspace }}/nargo/nargo" - chmod +x $nargo_binary - echo "$(dirname $nargo_binary)" >> $GITHUB_PATH - export PATH="$PATH:$(dirname $nargo_binary)" - nargo -V + uses: ./.github/actions/download-nargo - name: Run `prove_and_verify` working-directory: ./examples/prove_and_verify @@ -521,25 +485,6 @@ jobs: working-directory: ./examples/codegen_verifier run: ./test.sh - critical-library-list: - name: Load critical library list - runs-on: ubuntu-22.04 - outputs: - libraries: ${{ steps.get_critical_libraries.outputs.libraries }} - - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Build list of libraries - id: get_critical_libraries - run: | - LIBRARIES=$(yq ./EXTERNAL_NOIR_LIBRARIES.yml -o json | jq -c '.libraries | map({ repo, path: (.path // ""), timeout:(.timeout // 2), nargo_args })') - echo "libraries=$LIBRARIES" - echo "libraries=$LIBRARIES" >> $GITHUB_OUTPUT - env: - GH_TOKEN: ${{ github.token }} - external-repo-checks: needs: [build-nargo, critical-library-list] runs-on: ubuntu-22.04 @@ -564,18 +509,7 @@ jobs: ref: ${{ matrix.project.ref }} - name: Download nargo binary - uses: actions/download-artifact@v4 - with: - name: nargo - path: ./nargo - - - name: Set nargo on PATH - run: | - nargo_binary="${{ github.workspace }}/nargo/nargo" - chmod +x $nargo_binary - echo "$(dirname $nargo_binary)" >> $GITHUB_PATH - export PATH="$PATH:$(dirname $nargo_binary)" - nargo -V + uses: ./noir-repo/.github/actions/download-nargo - name: Remove requirements on compiler version working-directory: ./test-repo @@ -588,7 +522,6 @@ jobs: id: test_report working-directory: ./test-repo/${{ matrix.project.path }} run: | - output_file=${{ github.workspace }}/noir-repo/.github/critical_libraries_status/${{ matrix.project.repo }}/${{ matrix.project.path }}.actual.jsonl BEFORE=$SECONDS nargo test --silence-warnings --skip-brillig-constraints-check --format json ${{ matrix.project.nargo_args }} | tee $output_file @@ -634,6 +567,11 @@ jobs: timeout-minutes: 30 name: Compile `noir-contracts` zero inliner aggressiveness steps: + - name: Checkout + uses: actions/checkout@v4 + with: + path: noir-repo + - name: Checkout uses: actions/checkout@v4 with: @@ -641,18 +579,7 @@ jobs: path: test-repo - name: Download nargo binary - uses: actions/download-artifact@v4 - with: - name: nargo - path: ./nargo - - - name: Set nargo on PATH - run: | - nargo_binary="${{ github.workspace }}/nargo/nargo" - chmod +x $nargo_binary - echo "$(dirname $nargo_binary)" >> $GITHUB_PATH - export PATH="$PATH:$(dirname $nargo_binary)" - nargo -V + uses: ./noir-repo/.github/actions/download-nargo - name: Remove requirements on compiler version working-directory: ./test-repo