diff --git a/.github/proverCiScripts/deployToProver.sh b/.github/proverCiScripts/deployToProver.sh new file mode 100755 index 0000000000..4bb4a52572 --- /dev/null +++ b/.github/proverCiScripts/deployToProver.sh @@ -0,0 +1,12 @@ +#!/bin/bash +#set -e +#set -x + +prnumber=$1 +base_dir="/home/ubuntu/CI_Prover_Benches/" +target_dir="$base_dir"PR"$1" + +source_dir=$2 + +cd $source_dir && scp -r * prover:$target_dir + diff --git a/.github/proverCiScripts/execBench.sh b/.github/proverCiScripts/execBench.sh new file mode 100755 index 0000000000..1753991a49 --- /dev/null +++ b/.github/proverCiScripts/execBench.sh @@ -0,0 +1,56 @@ +#!/bin/bash +set -e +#set -x + +prnumber=$1 +base_dir="/home/ubuntu/CI_Prover_Benches/" +target_dir="$base_dir"PR"$1" +k=$2 +circuit=$(echo $3 | awk '{ print $2 }' | tr '[:upper:]' '[:lower:]') +printf -v _date '%(%Y-%m-%d_%H:%M:%S)T' -1 + +case $circuit in + "all") + echo "To be implemented" + exit 1 + ;; + "evm") + run_suffix="evm_circuit_prover" + ;; + "keccak") + run_suffix="keccak_round" + ;; + "state") + run_suffix="state_circuit_prover" + ;; + "tx") + run_suffix="tx_circuit_prover" + ;; + "super") + run_suffix="super_circuit_prover" + ;; + "bytecode") + run_suffix="bytecode_circuit_prover" + ;; + "pi") + run_suffix="pi_circuit_prover" + ;; + "exp") + run_suffix="exp_circuit_prover" + ;; + "copy") + run_suffix="copy_circuit_prover" + ;; + *) + echo "No proper value" + exit 1 + ;; +esac + +cd $target_dir; +logfile=$_date--${circuit}_bench-$k.proverlog + +export RUST_BACKTRACE=1 +DEGREE=$k ~/.cargo/bin/cargo test --profile bench bench_${run_suffix} -p circuit-benchmarks --features benches -- --nocapture > "$target_dir/$logfile" 2>&1 + +exit 0 diff --git a/.github/proverCiScripts/getSysstat.sh b/.github/proverCiScripts/getSysstat.sh new file mode 100755 index 0000000000..565a2525b8 --- /dev/null +++ b/.github/proverCiScripts/getSysstat.sh @@ -0,0 +1,10 @@ +#!/bin/bash +set -e +#set -x + +prnumber=$1 +base_dir="/home/ubuntu/CI_Prover_Benches/" +target_dir="$base_dir"PR"$prnumber" + +logfile=$(ls $target_dir | grep proverlog | xargs -n 1 basename) +tail -12 $target_dir/$logfile diff --git a/.github/proverCiScripts/prepareProver.sh b/.github/proverCiScripts/prepareProver.sh new file mode 100755 index 0000000000..0f31a4036a --- /dev/null +++ b/.github/proverCiScripts/prepareProver.sh @@ -0,0 +1,14 @@ +#!/bin/bash +#set -e +#set -x + +prnumber=$1 +base_dir="/home/ubuntu/CI_Prover_Benches/" +target_dir="$base_dir"PR"$1" +source_dir=$2 + +mkdir -p $target_dir + +# Install a recent go toolchain +wget https://go.dev/dl/go1.22.2.linux-amd64.tar.gz +sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.22.2.linux-amd64.tar.gz diff --git a/.github/proverCiScripts/rsSysstat.sh b/.github/proverCiScripts/rsSysstat.sh new file mode 100755 index 0000000000..4bb9f6b1cc --- /dev/null +++ b/.github/proverCiScripts/rsSysstat.sh @@ -0,0 +1,14 @@ +#!/bin/bash +set -e +#set -x + +sudo systemctl stop sysstat.service +sudo rm -rf /var/log/sysstat/* +sudo rm -f sar.stats +sudo rm -rf cpu.stats +sudo rm -rf mem.stats + +sleep 10 + +sudo systemctl start sysstat.service + diff --git a/.github/workflows/geth-utils.yml b/.github/workflows/geth-utils.yml index 2ac5fe0c61..8afd7d621d 100644 --- a/.github/workflows/geth-utils.yml +++ b/.github/workflows/geth-utils.yml @@ -2,8 +2,8 @@ name: Geth-utils Checks on: merge_group: - pull_request: - types: [synchronize, opened, reopened, ready_for_review] + # pull_request: + # types: [synchronize, opened, reopened, ready_for_review] push: branches: - main diff --git a/.github/workflows/gh-actions-prover-benches.yml b/.github/workflows/gh-actions-prover-benches.yml index 7e0199ac33..615b6acd41 100644 --- a/.github/workflows/gh-actions-prover-benches.yml +++ b/.github/workflows/gh-actions-prover-benches.yml @@ -1,7 +1,7 @@ name: GH Actions Prover Benches on PR on: pull_request: - types: [ labeled , ready_for_review] + types: [ labeled ] jobs: Prover_benchmarking_Automation: if: contains(github.event.label.name, 'benchmarks') @@ -21,13 +21,13 @@ jobs: - run: .github/proverCiScripts/deployToProver.sh "${{ env.PR_NUMBER }}" "${{ github.workspace }}" shell: bash - run: | - ssh prover "bash -s" -- < .github/proverCiScripts/execBench.sh "${{ env.PR_NUMBER }}" 19 '"${{ github.event.label.name }}"' + ssh prover "bash -s" -- < .github/proverCiScripts/execBench.sh "${{ env.PR_NUMBER }}" 22 '"${{ github.event.label.name }}"' shell: bash - run: | ssh prover "bash -s" -- < .github/proverCiScripts/getSysstat.sh "${{ env.PR_NUMBER }}" - name: Calculate Benchmark Result if: success() || failure() - run: .github/proverCiScripts/processResults.sh "${{ env.PR_NUMBER }}" '"${{ github.event.label.name }}"' "19" + run: .github/proverCiScripts/processResults.sh "${{ env.PR_NUMBER }}" '"${{ github.event.label.name }}"' "22" shell: bash - name: PowerOff prover if: always() diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index 1c027235f3..3a0a30923b 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -4,8 +4,8 @@ on: merge_group: schedule: - cron: '50 1 * * SUN' - pull_request: - types: [synchronize, labeled] + # pull_request: + # types: [synchronize, labeled] push: branches: - main diff --git a/.github/workflows/lints.yml b/.github/workflows/lints.yml index 3f83a0bc5f..a616c46720 100644 --- a/.github/workflows/lints.yml +++ b/.github/workflows/lints.yml @@ -2,9 +2,9 @@ name: Lints # We only run these lints on trial-merges of PRs to reduce noise. on: - merge_group: - pull_request: - types: [synchronize, opened, reopened, ready_for_review] + # merge_group: + # pull_request: + # types: [synchronize, opened, reopened, ready_for_review] push: branches: - main diff --git a/.github/workflows/main-tests.yml b/.github/workflows/main-tests.yml index 2801dc8c9f..41110c50a8 100644 --- a/.github/workflows/main-tests.yml +++ b/.github/workflows/main-tests.yml @@ -2,8 +2,8 @@ name: Main tests on: merge_group: - pull_request: - types: [synchronize, opened, reopened, ready_for_review] + # pull_request: + # types: [synchronize, opened, reopened, ready_for_review] push: branches: - main diff --git a/.github/workflows/test-features.yml b/.github/workflows/test-features.yml index f04075e447..7b84a2482c 100644 --- a/.github/workflows/test-features.yml +++ b/.github/workflows/test-features.yml @@ -2,8 +2,8 @@ name: Feature flags on: merge_group: - pull_request: - types: [synchronize, opened, reopened, ready_for_review] + # pull_request: + # types: [synchronize, opened, reopened, ready_for_review] push: branches: - main diff --git a/.github/workflows/wasm.yml b/.github/workflows/wasm.yml index 10e43b6117..a3e0e3db77 100644 --- a/.github/workflows/wasm.yml +++ b/.github/workflows/wasm.yml @@ -2,8 +2,8 @@ name: WASM on: merge_group: - pull_request: - types: [synchronize, opened, reopened, ready_for_review] + # pull_request: + # types: [synchronize, opened, reopened, ready_for_review] push: branches: - main @@ -62,4 +62,4 @@ jobs: uses: actions-rs/cargo@v1 with: command: build - args: --verbose --release --package zkevm-circuits --no-default-features --target wasm32-unknown-unknown -Z build-std=panic_abort,std \ No newline at end of file + args: --verbose --release --package zkevm-circuits --no-default-features --target wasm32-unknown-unknown -Z build-std=panic_abort,std