diff --git a/.github/workflows/bench.yml b/.github/workflows/bench.yml new file mode 100644 index 00000000..f7cc284d --- /dev/null +++ b/.github/workflows/bench.yml @@ -0,0 +1,53 @@ +name: Benchmarks + +on: + pull_request: + branches: + - main + push: + branches: + - bgins/feat-add-matching-sorts + +permissions: + deployments: write + contents: write + +jobs: + run-solver-benchmarks: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Install golang + uses: actions/setup-go@v5 + + - name: Run benchmarks + run: ./stack benchmarks-solver | tee assets/benchmark-output.txt + + - name: Download previous benchmark data + uses: actions/cache@v4 + with: + path: ./cache + key: ${{ runner.os }}-benchmark + + - name: Store benchmark results + if: github.event_name == 'pull_request' + uses: benchmark-action/github-action-benchmark@v1 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + tool: 'go' + output-file-path: assets/benchmark-output.txt + external-data-json-path: ./cache/benchmark-data.json + comment-on-alert: true + summary-always: true + auto-push: false + + # - name: Publish benchmark results + # if: github.event_name == 'push' + # uses: benchmark-action/github-action-benchmark@v1 + # with: + # github-token: ${{ secrets.GITHUB_TOKEN }} + # tool: 'go' + # output-file-path: assets/benchmark-output.txt + # auto-push: true