name: Benchmarks on: workflow_dispatch: push: branches: - master concurrency: group: benchmark-${{ github.ref }} cancel-in-progress: true permissions: # deployments permission to deploy GitHub pages website deployments: write # contents permission to update benchmark contents in gh-pages branch contents: write jobs: benchmark: name: Performance regression check runs-on: ubuntu-latest steps: - uses: actions/setup-go@v3 with: go-version: 1.22.5 - uses: actions/checkout@v3 # Run benchmark with `go test -bench` and stores the output to a file - name: Run benchmark run: go test -v ./... -bench=. -run=xxx -benchmem | tee output.txt # Run `github-action-benchmark` action - name: Store benchmark result uses: benchmark-action/github-action-benchmark@v1 with: # What benchmark tool the output.txt came from tool: 'go' # Where the output from the benchmark tool is stored output-file-path: output.txt # GitHub API token to make a commit comment github-token: ${{ secrets.GITHUB_TOKEN }} # Enable alert commit comment comment-on-alert: true # Push and deploy GitHub pages branch automatically auto-push: true