on: push: branches: - master - main paths: - "**" - "!docs/**" - "!**.md" pull_request: paths: - "**" - "!docs/**" - "!**.md" name: Benchmark jobs: Compare: runs-on: ubuntu-latest steps: - name: Fetch Repository uses: actions/checkout@v4 - name: Install Go uses: actions/setup-go@v4 with: # NOTE: Keep this in sync with the version from go.mod go-version: "1.20.x" - name: Run Benchmark run: set -o pipefail; go test ./... -benchmem -run=^$ -bench . | tee output.txt - name: Get Previous Benchmark Results uses: actions/cache@v3 with: path: ./cache key: ${{ runner.os }}-benchmark - name: Save Benchmark Results uses: benchmark-action/github-action-benchmark@v1.16.2 with: tool: "go" output-file-path: output.txt github-token: ${{ secrets.BENCHMARK_TOKEN }} benchmark-data-dir-path: "benchmarks" fail-on-alert: true comment-on-alert: ${{ github.event_name == 'push' || github.event_name == 'workflow_dispatch' }} # Enable Job Summary for PRs - deactivated because of issues #summary-always: ${{ github.event_name != 'push' && github.event_name != 'workflow_dispatch' }} # TODO: reactivate it later -> when v3 is the stable one #auto-push: ${{ github.event_name == 'push' || github.event_name == 'workflow_dispatch' }} auto-push: false save-data-file: ${{ github.event_name == 'push' || github.event_name == 'workflow_dispatch' }}