ee389beb8c
- Add 72 rebrand workflow files (polkadot→pezkuwi, substrate→bizinikiwi, cumulus→pezcumulus) - Add GitHub actions, issue templates, and configs - Removed unnecessary workflows (fork-sync, gitspiegel, upstream-tracker, sync-templates, backport) - Renamed zombienet test files to match new naming convention
127 lines
4.8 KiB
YAML
127 lines
4.8 KiB
YAML
name: Short benchmarks (pezframe-omni-bencher)
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
env:
|
|
ARTIFACTS_NAME: pezframe-omni-bencher-artifacts
|
|
|
|
jobs:
|
|
isdraft:
|
|
uses: ./.github/workflows/reusable-isdraft.yml
|
|
preflight:
|
|
needs: isdraft
|
|
uses: ./.github/workflows/reusable-preflight.yml
|
|
|
|
quick-benchmarks-omni:
|
|
runs-on: ${{ needs.preflight.outputs.RUNNER_BENCHMARK }}
|
|
needs: [preflight]
|
|
if: ${{ needs.preflight.outputs.changes_rust }}
|
|
env:
|
|
RUSTFLAGS: "-C debug-assertions"
|
|
RUST_BACKTRACE: "full"
|
|
WASM_BUILD_NO_COLOR: 1
|
|
WASM_BUILD_RUSTFLAGS: "-C debug-assertions"
|
|
RUST_LOG: "frame_omni_bencher=info,pezkuwi_sdk_frame=info"
|
|
timeout-minutes: 60
|
|
container:
|
|
image: ${{ needs.preflight.outputs.IMAGE }}
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
|
|
|
- name: Clean cargo cache to free disk space
|
|
run: |
|
|
cargo clean 2>/dev/null || true
|
|
rm -rf ~/.cargo/registry/cache 2>/dev/null || true
|
|
rm -rf ~/.cargo/git/db 2>/dev/null || true
|
|
|
|
- name: script
|
|
id: required
|
|
run: |
|
|
cargo build --locked --quiet --release -p asset-hub-zagros-runtime --features runtime-benchmarks
|
|
cargo run --locked --release -p pezframe-omni-bencher --quiet -- v1 benchmark pallet --runtime target/release/wbuild/asset-hub-zagros-runtime/asset_hub_zagros_runtime.compact.compressed.wasm --all --steps 2 --repeat 1 --quiet
|
|
|
|
runtime-matrix:
|
|
runs-on: ubuntu-latest
|
|
needs: [preflight]
|
|
if: ${{ needs.preflight.outputs.changes_rust }}
|
|
timeout-minutes: 30
|
|
outputs:
|
|
runtime: ${{ steps.runtime.outputs.runtime }}
|
|
container:
|
|
image: ${{ needs.preflight.outputs.IMAGE }}
|
|
name: Extract runtimes from matrix
|
|
steps:
|
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
|
- id: runtime
|
|
run: |
|
|
RUNTIMES=$(jq '[.[] | select(.package != null)]' .github/workflows/runtimes-matrix.json)
|
|
|
|
RUNTIMES=$(echo $RUNTIMES | jq -c .)
|
|
echo "runtime=$RUNTIMES"
|
|
echo "runtime=$RUNTIMES" >> $GITHUB_OUTPUT
|
|
|
|
run-pezframe-omni-bencher:
|
|
runs-on: ${{ needs.preflight.outputs.RUNNER_BENCHMARK }}
|
|
needs: [preflight, runtime-matrix]
|
|
if: ${{ needs.preflight.outputs.changes_rust }}
|
|
timeout-minutes: 60
|
|
strategy:
|
|
fail-fast: false # keep running other workflows even if one fails, to see the logs of all possible failures
|
|
matrix:
|
|
runtime: ${{ fromJSON(needs.runtime-matrix.outputs.runtime) }}
|
|
bench_cmd: ["pallet", "overhead"]
|
|
container:
|
|
image: ${{ needs.preflight.outputs.IMAGE }}
|
|
env:
|
|
PACKAGE_NAME: ${{ matrix.runtime.package }}
|
|
FLAGS: ${{ matrix.runtime.bench_flags }}
|
|
RUST_LOG: "frame_omni_bencher=info,pezkuwi_sdk_frame=info"
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
|
|
|
- name: script (benchmark ${{ matrix.bench_cmd }})
|
|
id: required
|
|
shell: bash
|
|
run: |
|
|
RUNTIME_BLOB_NAME=$(echo $PACKAGE_NAME | sed 's/-/_/g').compact.compressed.wasm
|
|
RUNTIME_BLOB_PATH=./target/release/wbuild/$PACKAGE_NAME/$RUNTIME_BLOB_NAME
|
|
BENCH_CMD=${{ matrix.bench_cmd }}
|
|
cargo build --release --locked -p $PACKAGE_NAME -p pezframe-omni-bencher --features=${{ matrix.runtime.bench_features }} --quiet
|
|
echo "Running short $BENCH_CMD benchmarking for PACKAGE_NAME=$PACKAGE_NAME and RUNTIME_BLOB_PATH=$RUNTIME_BLOB_PATH"
|
|
ls -lrt $RUNTIME_BLOB_PATH
|
|
|
|
if [[ "$BENCH_CMD" == "pallet" ]]; then
|
|
cmd="./target/release/pezframe-omni-bencher v1 benchmark pallet --runtime $RUNTIME_BLOB_PATH --all --steps 2 --repeat 1 $FLAGS"
|
|
elif [[ "$BENCH_CMD" == "overhead" ]]; then
|
|
cmd="./target/release/pezframe-omni-bencher v1 benchmark overhead --runtime $RUNTIME_BLOB_PATH"
|
|
else
|
|
echo "Error: Unknown BENCH_CMD value: $BENCH_CMD"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Running command: $cmd"
|
|
eval "$cmd"
|
|
|
|
confirm-pezframe-omni-benchers-passed:
|
|
runs-on: ubuntu-latest
|
|
name: All benchmarks passed
|
|
needs: [quick-benchmarks-omni, run-pezframe-omni-bencher]
|
|
if: always() && !cancelled()
|
|
steps:
|
|
- run: |
|
|
tee resultfile <<< '${{ toJSON(needs) }}'
|
|
FAILURES=$(cat resultfile | grep '"result": "failure"' | wc -l)
|
|
if [ $FAILURES -gt 0 ]; then
|
|
echo "### At least one required job failed ❌" >> $GITHUB_STEP_SUMMARY
|
|
exit 1
|
|
else
|
|
echo '### Good job! All the required jobs passed 🚀' >> $GITHUB_STEP_SUMMARY
|
|
fi
|