name: "Minimal Continuous Benchmark" on: push: branches: - main pull_request: # The branches below must be a subset of the branches above branches: [main] permissions: read-all jobs: benchmark: name: Performance regression check runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v4 with: cache: false go-version: 1.20.x # Run benchmark with `go test -bench` and stores the output to a file - name: Run benchmark run: make BENCH_OUTPUT=ci-cd run-bench # Download previous benchmark result from cache (if exists) - name: Download previous benchmark data uses: actions/cache@v3 with: path: ./cache key: ${{ runner.os }}-gen1-benchmark # Run `github-action-benchmark` action - name: Store benchmark result uses: benchmark-action/github-action-benchmark@v1.18.0 with: # What benchmark tool the output.txt came from tool: 'customBiggerIsBetter' # Where the output from the benchmark tool is stored output-file-path: ci-cd.json # 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: true # Upload the updated cache file for the next job by actions/cache