name: Benchmark
on:
  push:
    branches:
      - main
env:
  DEFAULT_GO_VERSION: "1.20"
jobs:
  benchmark:
    name: Benchmarks
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-go@v4
        with:
          go-version: ${{ env.DEFAULT_GO_VERSION }}
      - name: Run benchmarks
        run: make test-bench | tee output.txt
      - name: Download previous benchmark data
        uses: actions/cache@v3
        with:
          path: ./benchmarks
          key: ${{ runner.os }}-benchmark
      - name: Store benchmarks result
        uses: benchmark-action/github-action-benchmark@v1.17.0
        with:
          name: Benchmarks
          tool: 'go'
          output-file-path: output.txt
          external-data-json-path: ./benchmarks/data.json
          auto-push: false
          fail-on-alert: false
          alert-threshold: "400%"
