ci: fixes bot workflow and comment update (#3229) #82
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: run benchmarks when pushing on main branch | |
on: | |
push: | |
branches: | |
- master | |
paths: | |
- contribs/** | |
- gno.land/** | |
- gnovm/** | |
- tm2/** | |
permissions: | |
# deployments permission to deploy GitHub pages website | |
deployments: write | |
# contents permission to update benchmark contents in gh-pages branch | |
contents: write | |
env: | |
CGO_ENABLED: 0 | |
jobs: | |
benchmarks: | |
if: ${{ github.repository == 'gnolang/gno' }} | |
runs-on: [self-hosted, Linux, X64, benchmarks] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 1 | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: "1.22.x" | |
- name: Run benchmark | |
# add more benchmarks by adding additional lines for different packages; | |
# or modify the -bench regexp. | |
run: | | |
set -xeuo pipefail && ( | |
go test ./gnovm/pkg/gnolang -bench='BenchmarkBenchdata' -benchmem -run='^$' -v -cpu=1,2 | |
) | tee benchmarks.txt | |
- name: Download previous benchmark data | |
uses: actions/cache@v4 | |
with: | |
path: ./cache | |
key: ${{ runner.os }}-benchmark | |
- name: Store benchmark results into `gh-benchmarks` branch | |
uses: benchmark-action/github-action-benchmark@v1 | |
# see https://github.com/benchmark-action/github-action-benchmark?tab=readme-ov-file#action-inputs | |
with: | |
name: Go Benchmarks | |
tool: "go" | |
output-file-path: benchmarks.txt | |
max-items-in-chart: 100 | |
# Show alert with commit comment on detecting possible performance regression | |
alert-threshold: "120%" | |
fail-on-alert: false | |
comment-on-alert: true | |
alert-comment-cc-users: "@ajnavarro,@thehowl,@zivkovicmilos" | |
# Enable Job Summary for PRs | |
summary-always: true | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
# NOTE you need to use a separate GITHUB PAT token that has a write access to the specified repository. | |
# gh-repository: 'github.com/gnolang/benchmarks' # on gh-pages branch | |
gh-pages-branch: gh-benchmarks | |
benchmark-data-dir-path: . | |
auto-push: true |