Skip to content

Commit

Permalink
Fix subsystem bench publishing (#5667)
Browse files Browse the repository at this point in the history
  • Loading branch information
mordamax authored Sep 12, 2024
1 parent a34cc8d commit 5f72a1f
Showing 1 changed file with 71 additions and 39 deletions.
110 changes: 71 additions & 39 deletions .github/workflows/subsystem-benchmarks.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
name: Subsystem Benchmarks

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

concurrency:
Expand All @@ -21,27 +23,49 @@ jobs:
runs-on: ubuntu-latest
outputs:
IMAGE: ${{ steps.set_image.outputs.IMAGE }}
RUNNER: ${{ steps.set_runner.outputs.RUNNER }}
steps:
- name: Checkout
uses: actions/checkout@v4
- id: set_image
run: cat .github/env >> $GITHUB_OUTPUT
- id: set_runner
run: |
# Run merge queues on persistent runners
if [[ $GITHUB_REF_NAME == *"gh-readonly-queue"* ]]; then
echo "RUNNER=arc-runners-polkadot-sdk-beefy-persistent" >> $GITHUB_OUTPUT
else
echo "RUNNER=arc-runners-polkadot-sdk-beefy" >> $GITHUB_OUTPUT
fi
build:
timeout-minutes: 80
needs: [ set-image ]
runs-on: arc-runners-polkadot-sdk-benchmark
needs: [set-image]
runs-on: ${{ needs.set-image.outputs.RUNNER }}
container:
image: ${{ needs.set-image.outputs.IMAGE }}
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" }
]
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
Expand All @@ -56,81 +80,89 @@ jobs:
run: |
forklift cargo bench -p ${{ matrix.features.name }} --bench ${{ matrix.features.bench }} --features subsystem-benchmarks || echo "Benchmarks failed"
ls -lsa ./charts
mkdir ./artifacts
cp ./charts/${{ matrix.features.bench }}.json ./artifacts/${{ matrix.features.bench }}.json
- name: Upload artifacts
uses: actions/upload-artifact@v4.3.6
with:
name: ${{matrix.features.bench}}
path: ./artifacts
path: ./charts

publish-benchmarks:
timeout-minutes: 60
needs: [ build ]
needs: [build]
if: github.ref == 'refs/heads/master'
environment: subsystem-benchmarks
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
ref: gh-pages
fetch-depth: 0

- run: git checkout master --

- name: Download artifacts
uses: actions/download-artifact@v4.1.8
with:
path: ./artifacts
path: ./charts

- name: Setup git
run: |
# Fixes "detected dubious ownership" error in the ci
git config --global --add safe.directory '*'
ls -lsR ./artifacts
ls -lsR ./charts
- uses: actions/create-github-app-token@v1
id: app-token
with:
app-id: ${{ secrets.POLKADOTSDK_GHPAGES_APP_ID }}
private-key: ${{ secrets.POLKADOTSDK_GHPAGES_APP_KEY }}

- name: Publish ${{ env.BENCH_NAME }}
uses: benchmark-action/github-action-benchmark@v1
- name: Generate ${{ env.BENCH }}
env:
BENCH_NAME: availability-recovery-regression-bench
BENCH: availability-recovery-regression-bench
uses: benchmark-action/github-action-benchmark@v1
with:
tool: "customSmallerIsBetter"
name: ${{ env.BENCH_NAME }}
output-file-path: ./artifacts/${{ env.BENCH_NAME }}/${{ env.BENCH_NAME }}.json
benchmark-data-dir-path: ./artifacts/${{ env.BENCH_NAME }}
name: ${{ env.BENCH }}
output-file-path: ./charts/${{ env.BENCH }}/${{ env.BENCH }}.json
benchmark-data-dir-path: ./bench/${{ env.BENCH }}
github-token: ${{ steps.app-token.outputs.token }}
auto-push: true

- name: Publish ${{ env.BENCH_NAME }}
uses: benchmark-action/github-action-benchmark@v1
- name: Generate ${{ env.BENCH }}
env:
BENCH_NAME: availability-distribution-regression-bench
BENCH: availability-distribution-regression-bench
uses: benchmark-action/github-action-benchmark@v1
with:
tool: "customSmallerIsBetter"
name: ${{ env.BENCH_NAME }}
output-file-path: ./artifacts/${{ env.BENCH_NAME }}/${{ env.BENCH_NAME }}.json
benchmark-data-dir-path: ./artifacts/${{ env.BENCH_NAME }}
name: ${{ env.BENCH }}
output-file-path: ./charts/${{ env.BENCH }}/${{ env.BENCH }}.json
benchmark-data-dir-path: ./bench/${{ env.BENCH }}
github-token: ${{ steps.app-token.outputs.token }}
auto-push: true

- name: Publish ${{ env.BENCH_NAME }}
uses: benchmark-action/github-action-benchmark@v1
- name: Generate ${{ env.BENCH }}
env:
BENCH_NAME: approval-voting-regression-bench
BENCH: approval-voting-regression-bench
uses: benchmark-action/github-action-benchmark@v1
with:
tool: "customSmallerIsBetter"
name: ${{ env.BENCH_NAME }}
output-file-path: ./artifacts/${{ env.BENCH_NAME }}/${{ env.BENCH_NAME }}.json
benchmark-data-dir-path: ./artifacts/${{ env.BENCH_NAME }}
name: ${{ env.BENCH }}
output-file-path: ./charts/${{ env.BENCH }}/${{ env.BENCH }}.json
benchmark-data-dir-path: ./bench/${{ env.BENCH }}
github-token: ${{ steps.app-token.outputs.token }}
auto-push: true

- name: Publish ${{ env.BENCH_NAME }}
uses: benchmark-action/github-action-benchmark@v1
- name: Generate ${{ env.BENCH }}
env:
BENCH_NAME: statement-distribution-regression-bench
BENCH: statement-distribution-regression-bench
uses: benchmark-action/github-action-benchmark@v1
with:
tool: "customSmallerIsBetter"
name: ${{ env.BENCH_NAME }}
output-file-path: ./artifacts/${{ env.BENCH_NAME }}/${{ env.BENCH_NAME }}.json
benchmark-data-dir-path: ./artifacts/${{ env.BENCH_NAME }}
name: ${{ env.BENCH }}
output-file-path: ./charts/${{ env.BENCH }}/${{ env.BENCH }}.json
benchmark-data-dir-path: ./bench/${{ env.BENCH }}
github-token: ${{ steps.app-token.outputs.token }}
auto-push: true

0 comments on commit 5f72a1f

Please sign in to comment.