name: Benchmarks
on:
push:
branches: ["main"]
pull_request:
branches: ["*"]
permissions:
contents: read
jobs:
bench:
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' && vars.BENCHER_PROJECT != '' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
with:
persist-credentials: false
- uses: dtolnay/rust-toolchain@stable
- name: Install native deps
run: |
sudo apt-get update
sudo apt-get install -y pkg-config libdbus-1-dev
- uses: Swatinem/rust-cache@v2
with:
save-if: ${{ github.ref == 'refs/heads/main' }}
- uses: bencherdev/bencher@main
- run: |
bencher run \
--project ${{ vars.BENCHER_PROJECT }} \
--token ${{ secrets.BENCHER_API_TOKEN }} \
--branch main \
--adapter rust_criterion \
"cargo bench --all-features"
bench-pr:
if: ${{ github.event_name == 'pull_request' && vars.BENCHER_PROJECT != '' }}
runs-on: ubuntu-latest
permissions:
pull-requests: write
steps:
- uses: actions/checkout@v7
with:
persist-credentials: false
- uses: dtolnay/rust-toolchain@stable
- name: Install native deps
run: |
sudo apt-get update
sudo apt-get install -y pkg-config libdbus-1-dev
- uses: Swatinem/rust-cache@v2
with:
save-if: ${{ github.ref == 'refs/heads/main' }}
- uses: bencherdev/bencher@main
- run: |
bencher run \
--project ${{ vars.BENCHER_PROJECT }} \
--token ${{ secrets.BENCHER_API_TOKEN }} \
--branch ${{ github.head_ref }} \
--start-point main \
--start-point-reset \
--adapter rust_criterion \
--error-on-alert \
--github-actions ${{ secrets.GITHUB_TOKEN }} \
"cargo bench --all-features"