name: CI
on:
push:
branches: [main, master]
pull_request:
jobs:
quality:
uses: WyattAu/engineering-standards/.github/workflows/rust-kit.yml@main
with:
tier: a
all-features: true
loom: false
wasm: false
miri: false
bench-regression: true
perf-gate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- name: Install iai-callgrind runner
run: cargo install iai-callgrind-runner --locked
- name: Restore main baseline
if: github.event_name == 'pull_request'
uses: actions/cache/restore@v4
with:
path: target/iai
key: iai-baseline-main-notused-${{ github.run_id }}
restore-keys: iai-baseline-main-
- name: Save baseline (push to main)
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
run: cargo bench --bench iai_hot_path -- --save-baseline=main
- name: Regression gate (PRs)
if: github.event_name == 'pull_request'
run: cargo bench --bench iai_hot_path -- --baseline=main --fail-fast
- name: Save baseline cache (push to main)
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
uses: actions/cache/save@v4
with:
path: target/iai
key: iai-baseline-main-${{ github.run_id }}