Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,38 @@ jobs:
- name: Install iai-callgrind-runner
run: cargo install --locked --version 0.16.1 iai-callgrind-runner

- name: Install cargo-export
run: cargo install --locked cargo-export

- name: Export runner path
run: echo "IAI_CALLGRIND_RUNNER=$(which iai-callgrind-runner)" >> "$GITHUB_ENV"

- name: Run benchmarks
run: cargo bench --bench byte_set

- name: Prepare Tango baseline (main)
run: |
git fetch origin main
git worktree add ../tango-baseline origin/main
mkdir -p ../tango-baseline-artifacts
pushd ../tango-baseline
if cargo bench --bench byte_set_tango --no-run >/dev/null 2>&1; then
cargo export ../tango-baseline-artifacts -- bench --bench=byte_set_tango
echo "TANGO_BASELINE_READY=1" >> "$GITHUB_ENV"
else
echo "Tango bench target missing on baseline; skipping compare."
echo "TANGO_BASELINE_READY=0" >> "$GITHUB_ENV"
fi
popd

- name: Run Tango benchmarks vs main
run: |
if [ "${TANGO_BASELINE_READY:-0}" != "1" ]; then
echo "Skipping Tango compare; baseline missing bench target."
exit 0
fi
cargo bench -q --bench byte_set_tango -- compare ../tango-baseline-artifacts/byte_set_tango --fail-threshold 1.0 --fail-fast

- name: Cleanup Tango baseline
if: always()
run: git worktree remove --force ../tango-baseline || true
Loading