diff --git a/.github/workflows/tpch.yaml b/.github/workflows/tpch.yaml new file mode 100644 index 00000000..ff1a79d5 --- /dev/null +++ b/.github/workflows/tpch.yaml @@ -0,0 +1,48 @@ +name: Rust TPC-H Benchmarks + +# Do not run this workflow on pull request since this workflow has permission to modify contents. +on: + push: + branches: + - main + # Hack for testing (REMOVE) + - continuous-bench-attempt + +permissions: + # deployments permission to deploy GitHub pages website + deployments: write + # contents permission to update benchmark contents in gh-pages branch + contents: write + +jobs: + benchmark: + name: Run Rust benchmark example + runs-on: ubuntu-latest + steps: + # Setup Rust. + - uses: actions/checkout@v4 + - run: rustup toolchain install stable --profile minimal --no-self-update + + # Make sure to use cached compilation objects if they exist. + - uses: Swatinem/rust-cache@v2 + + # Run the benchmark and store to `output.txt`. + - name: Run benchmark + run: cargo bench --bench planner_bench tpch/q6/ -- --output-format bencher | tee output.txt + + # Run the `github-action-benchmark` action. + - name: Store benchmark result + uses: benchmark-action/github-action-benchmark@v1 + with: + name: Rust Benchmark + tool: "cargo" + output-file-path: output.txt + gh-pages-branch: gh-pages + github-token: ${{ secrets.GITHUB_TOKEN }} + auto-push: true + # Show alert with commit comment on detecting possible performance regression + alert-threshold: "125%" + summary-always: true + comment-on-alert: true + fail-on-alert: true + alert-comment-cc-users: "@connortsui20"