From 56c380d3624479256383da217a92b89effc5e34d Mon Sep 17 00:00:00 2001 From: Lars Eggert Date: Thu, 14 Mar 2024 21:26:02 +1000 Subject: [PATCH] Fix benchmark caching, and store (and show) baseline SHA --- .github/workflows/bench.yml | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/.github/workflows/bench.yml b/.github/workflows/bench.yml index 7c7f812341..3a4a7875cb 100644 --- a/.github/workflows/bench.yml +++ b/.github/workflows/bench.yml @@ -45,8 +45,8 @@ jobs: uses: actions/cache/restore@v4 with: path: ./target/criterion - key: criterion-${{ runner.os }}-${{ hashFiles('./target/criterion/**.json') }} - restore-keys: criterion-${{ runner.os }}- + key: criterion-${{ runner.name }}-${{ hashFiles('./target/criterion/**.json') }} + restore-keys: criterion-${{ runner.name }}- # Disable turboboost, hyperthreading and use performance governor. - name: Prepare machine @@ -120,7 +120,11 @@ jobs: uses: actions/cache/save@v4 with: path: ./target/criterion - key: ${{ steps.criterion-cache.outputs.cache-primary-key }} + key: criterion-${{ runner.name }}-${{ hashFiles('./target/criterion/**.json') }} + + - name: Remember main-branch push URL + if: github.ref == 'refs/heads/main' + run: echo "${{ github.sha }}" > target/criterion/baseline-sha.txt - name: Export perf data id: export @@ -138,7 +142,12 @@ jobs: - name: Format results as Markdown id: results run: | - echo '### Benchmark results' > results.md + { + echo "### Benchmark results" + echo + echo "Performance differences relative to $(cat target/criterion/baseline-sha.txt)." + echo + } > results.md grep -Ev 'ignored|running \d+ tests|%\)' results.txt |\ sed -E -e 's/(Performance has regressed.)/:broken_heart: **\1**/gi' \ -e 's/(Performance has improved.)/:green_heart: **\1**/gi' \ @@ -146,7 +155,6 @@ jobs: -e 's/^([a-z0-9].*)$/* **\1**/gi' \ -e 's/(change:[^%]*% )([^%]*%)(.*)/\1**\2**\3/gi' \ >> results.md - echo '' >> results.md - name: Export PR comment data uses: ./.github/actions/pr-comment-data-export