name: "Minimal Continuous Benchmark" on: push: branches: - main pull_request: # The branches below must be a subset of the branches above branches: [main] jobs: benchmark: name: Performance regression check runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions/setup-go@v2 with: go-version: 1.18.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@v1 with: path: ./cache key: ${{ runner.os }}-benchmark # Run `github-action-benchmark` action - name: Store benchmark result uses: benchmark-action/github-action-benchmark@v1.11.3 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