Skip to content

Commit

Permalink
Create subsystem-benchmarks.yml
Browse files Browse the repository at this point in the history
  • Loading branch information
mordamax committed Aug 12, 2024
1 parent 1f49358 commit 95f0c64
Showing 1 changed file with 84 additions and 0 deletions.
84 changes: 84 additions & 0 deletions .github/workflows/subsystem-benchmarks.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
# The actions takes json file as input and runs github-action-benchmark for it.

on:
push:
branches:
- master
pull_request:
types: [ opened, synchronize, reopened, closed, labeled ]
merge_group:

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

permissions:
contents: read
pull-requests: write

jobs:
set-image:
# GitHub Actions allows using 'env' in a container context.
# However, env variables don't work for forks: https://github.com/orgs/community/discussions/44322
# This workaround sets the container image for each job using 'set-image' job output.
runs-on: ubuntu-latest
outputs:
IMAGE: ${{ steps.set_image.outputs.IMAGE }}
steps:
- name: Checkout
uses: actions/checkout@v4
- id: set_image
run: cat .github/env >> $GITHUB_OUTPUT

build:
needs: [ set-image ]
# TODO: remove once migration is complete or this workflow is fully stable
# if: contains(github.event.label.name, 'GHA-migration')
runs-on: arc-runners-polkadot-sdk-benchmark
container:
image: ${{ needs.set-image.outputs.IMAGE }}
env:
BENCH_DIR: ./charts/bench/${{ matrix.features.bench }}
BENCH_FILE_NAME: ${{ matrix.features.bench }}
strategy:
fail-fast: false
matrix:
features: [
{ name: "polkadot-availability-recovery", bench: "availability-recovery-regression-bench" },
{ name: "polkadot-availability-distribution", bench: "availability-distribution-regression-bench" },
{ name: "polkadot-node-core-approval-voting", bench: "approval-voting-regression-bench" },
{ name: "polkadot-statement-distribution", bench: "statement-distribution-regression-bench" }
]
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Check Rust
run: |
rustup show
rustup +nightly show
- name: Run Benchmarks
continue-on-error: true
id: run-benchmarks
run: |
cargo bench -p ${{ matrix.features.name }} --bench ${{ matrix.features.bench }} --features subsystem-benchmarks || echo "Benchmarks failed"
ls -lsa ./charts
mkdir -p $BENCH_DIR || echo "Directory exists"
cp charts/${BENCH_FILE_NAME}.json $BENCH_DIR
ls -lsa $BENCH_DIR
# Fixes "detected dubious ownership" error in the ci
git config --global --add safe.directory '*'
- name: Publish result to GH Pages
if: ${{ steps.run-benchmarks.outcome == 'success' }}
uses: benchmark-action/github-action-benchmark@v1
with:
tool: "customSmallerIsBetter"
name: ${{ env.BENCH_FILE_NAME }}
output-file-path: ${{ env.BENCH_DIR }}/${{ env.BENCH_FILE_NAME }}.json
benchmark-data-dir-path: ${{ env.BENCH_DIR }}
github-token: ${{ secrets.GITHUB_TOKEN }}
comment-on-alert: ${{ github.event_name == 'pull_request' }} # will comment on PRs if regression is detected
auto-push: false # TODO: enable when gitlab is removed ${{ github.ref == 'refs/heads/master' }}

0 comments on commit 95f0c64

Please sign in to comment.