benchmarks: add S3/LocalStack baselines and trim S3 workloads #10
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: benchmarks | |
| on: | |
| workflow_dispatch: | |
| pull_request: | |
| jobs: | |
| scenarios: | |
| name: scenario benchmarks (gated) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Rust toolchain | |
| uses: dtolnay/rust-toolchain@stable | |
| - name: Rust cache | |
| uses: Swatinem/rust-cache@v2 | |
| with: | |
| key: ${{ runner.os }}-${{ runner.arch }}-bench-${{ hashFiles('**/Cargo.toml') }} | |
| cache-on-failure: false | |
| - name: Run disk benchmark | |
| run: cargo run -p tonbo-bench-runner -- --mode scenario --config benches/harness/configs/ci-write-only.yaml | |
| - name: Run mixed benchmark (disk) | |
| run: cargo run -p tonbo-bench-runner -- --mode scenario --config benches/harness/configs/ci-mixed.yaml | |
| - name: Run compaction benchmark (disk) | |
| run: cargo run -p tonbo-bench-runner -- --mode scenario --config benches/harness/configs/ci-compaction.yaml | |
| - name: Compare against baseline | |
| run: | | |
| cargo run -p tonbo-bench-runner -- compare \ | |
| --current target/bench-results \ | |
| --baseline benchmarks/baselines/scenarios \ | |
| --thresholds benches/harness/configs/regression-thresholds.yaml \ | |
| --missing-baseline warn \ | |
| --report target/bench-results/regression-report.json | |
| - name: Generate performance report | |
| run: | | |
| cargo run -p tonbo-bench-runner -- report \ | |
| --results-dir target/bench-results \ | |
| --limit 10 \ | |
| --output-md target/bench-reports/perf-report.md \ | |
| --output-json target/bench-reports/perf-report.json | |
| - name: Upload benchmark artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: tonbo-benchmarks | |
| path: | | |
| target/bench-results/**/*.json | |
| target/bench-results/regression-report.json | |
| target/bench-reports/perf-report.md | |
| target/bench-reports/perf-report.json | |
| if-no-files-found: ignore |