From 2c8ea1e0e4e34ef319d19e6839fc6d0340e38da0 Mon Sep 17 00:00:00 2001 From: Mara Robin B Date: Tue, 15 Mar 2022 15:59:33 +0100 Subject: [PATCH] [ci] scripts: don't rebuild for every pallet benchmark (#5126) * scripts: don't rebuild for every pallet benchmark * ci: remove orphan variable * [ci] run_benches_for_runtime.sh: explicit relative path names * [ci] scripts: handle failing benchmarks --- polkadot/.gitlab-ci.yml | 5 +--- polkadot/scripts/run_benches_for_runtime.sh | 33 +++++++++++---------- 2 files changed, 18 insertions(+), 20 deletions(-) diff --git a/polkadot/.gitlab-ci.yml b/polkadot/.gitlab-ci.yml index 41f2071b6e..66bd12584c 100644 --- a/polkadot/.gitlab-ci.yml +++ b/polkadot/.gitlab-ci.yml @@ -514,13 +514,12 @@ update_polkadot_weights: &update-weights stage: stage2 when: manual variables: - PROFILE: production RUNTIME: polkadot artifacts: paths: - ${RUNTIME}_weights_${CI_COMMIT_SHORT_SHA}.patch script: - - ./scripts/run_benches_for_runtime.sh $RUNTIME $PROFILE + - ./scripts/run_benches_for_runtime.sh $RUNTIME - git diff -P > ${RUNTIME}_weights_${CI_COMMIT_SHORT_SHA}.patch # uses the "shell" executors tags: @@ -529,13 +528,11 @@ update_polkadot_weights: &update-weights update_kusama_weights: <<: *update-weights variables: - PROFILE: production RUNTIME: kusama update_westend_weights: <<: *update-weights variables: - PROFILE: production RUNTIME: westend #### stage: stage3 diff --git a/polkadot/scripts/run_benches_for_runtime.sh b/polkadot/scripts/run_benches_for_runtime.sh index f2f101e9e1..d9a836a4f7 100755 --- a/polkadot/scripts/run_benches_for_runtime.sh +++ b/polkadot/scripts/run_benches_for_runtime.sh @@ -1,17 +1,18 @@ #!/bin/bash +set -e + # Runs all benchmarks for all pallets, for a given runtime, provided by $1 # Should be run on a reference machine to gain accurate benchmarks # current reference machine: https://github.com/paritytech/substrate/pull/5848 runtime="$1" -profile="$2" -standard_args="--profile $profile --locked --features=runtime-benchmarks" echo "[+] Running all benchmarks for $runtime" -# shellcheck disable=SC2086 -cargo +nightly run $standard_args benchmark \ +cargo +nightly build --profile production --locked --features=runtime-benchmarks + +./target/production/polkadot benchmark \ --chain "${runtime}-dev" \ --list |\ tail -n+2 |\ @@ -23,17 +24,17 @@ cargo +nightly run $standard_args benchmark \ while read -r line; do pallet="$(echo "$line" | cut -d' ' -f1)"; echo "Runtime: $runtime. Pallet: $pallet"; -# shellcheck disable=SC2086 -cargo +nightly run $standard_args -- benchmark \ - --chain="${runtime}-dev" \ - --steps=50 \ - --repeat=20 \ - --pallet="$pallet" \ - --extrinsic="*" \ - --execution=wasm \ - --wasm-execution=compiled \ - --heap-pages=4096 \ - --header=./file_header.txt \ - --output="./runtime/${runtime}/src/weights/${pallet/::/_}.rs" + # '!' has the side effect of bypassing errexit / set -e + ! ./target/production/polkadot benchmark \ + --chain="${runtime}-dev" \ + --steps=50 \ + --repeat=20 \ + --pallet="$pallet" \ + --extrinsic="*" \ + --execution=wasm \ + --wasm-execution=compiled \ + --heap-pages=4096 \ + --header=./file_header.txt \ + --output="./runtime/${runtime}/src/weights/${pallet/::/_}.rs" done < "${runtime}_pallets" rm "${runtime}_pallets"