aboutsummaryrefslogtreecommitdiffstats
path: root/.github/workflows/benchmark.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/benchmark.yml')
-rw-r--r--.github/workflows/benchmark.yml39
1 files changed, 39 insertions, 0 deletions
diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml
new file mode 100644
index 00000000..e5fcd1f1
--- /dev/null
+++ b/.github/workflows/benchmark.yml
@@ -0,0 +1,39 @@
+name: Benchmarks
+on:
+ workflow_dispatch:
+ push:
+ branches:
+ - master
+
+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.18.x
+ - 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