diff options
author | Michael Muré <batolettre@gmail.com> | 2022-11-25 17:21:00 +0100 |
---|---|---|
committer | Michael Muré <batolettre@gmail.com> | 2022-11-25 17:23:04 +0100 |
commit | c227f2e985930532ade4805abbd7e831eb68baca (patch) | |
tree | 0198ec0647022854bb5f8939ec1c08ee9a9cd694 | |
parent | 70bd7377b6362127794f3a6198dd2c63863025fc (diff) | |
download | git-bug-c227f2e985930532ade4805abbd7e831eb68baca.tar.gz |
gha: add a workflow to continuously run benchmarks
-rw-r--r-- | .github/workflows/benchmark.yml | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml new file mode 100644 index 00000000..7005b089 --- /dev/null +++ b/.github/workflows/benchmark.yml @@ -0,0 +1,47 @@ +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/checkout@v2 + - uses: actions/setup-go@v1 + # 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 + # Download previous benchmark result from cache (if exists) + - name: Download previous benchmark data + uses: actions/cache@v1 + with: + path: ./cache + key: ${{ runner.os }}-benchmark + # 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 + # Where the previous data file is stored + external-data-json-path: ./cache/benchmark-data.json + # Workflow will fail when an alert happens + fail-on-alert: false + # 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 |