Skip to content

chore(deps): bump object_store from 0.11.2 to 0.14.0 in /engine #381

chore(deps): bump object_store from 0.11.2 to 0.14.0 in /engine

chore(deps): bump object_store from 0.11.2 to 0.14.0 in /engine #381

Workflow file for this run

name: engine-bench
# Runs only on PRs labeled "perf" to avoid expensive benchmark builds on
# every engine PR. Add the label to trigger; removing it cancels the run.
on:
pull_request:
types: [labeled, synchronize]
paths:
- 'engine/crates/**'
- 'engine/Cargo.toml'
- 'engine/Cargo.lock'
- '.github/workflows/engine-bench.yml'
# CI only reads the repo; restrict the token to the minimum (CodeQL ql-for-actions).
permissions:
contents: read
defaults:
run:
working-directory: engine
jobs:
bench:
name: Performance Benchmarks
if: contains(github.event.pull_request.labels.*.name, 'perf')
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 # stable
- uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2
with:
workspaces: engine
key: bench
# DuckDB C++ compilation needs swap on CI. ubuntu-latest runners ship with
# an active /swapfile, so disable and remove it before reallocating —
# otherwise `fallocate` fails with "Text file busy". `dd` is a fallback for
# filesystems where fallocate is unsupported.
- name: Configure swap
run: |
sudo swapoff /swapfile 2>/dev/null || true
sudo rm -f /swapfile
sudo fallocate -l 4G /swapfile || sudo dd if=/dev/zero of=/swapfile bs=1M count=4096
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
- name: Run benchmarks
run: |
cargo bench --bench compile -p rocky-cli -- --output-format bencher | tee bench-output.txt
cargo bench --bench state_store -p rocky-core -- --output-format bencher | tee -a bench-output.txt
# This workflow runs only on perf-labeled PRs (no push trigger), so there
# is no main-branch baseline to compare against — github-action-benchmark
# requires a `gh-pages` history branch and fails without one. Instead we
# surface the raw bencher output as a downloadable artifact. Maintaining a
# benchmark history would mean running these expensive builds on every main
# push, which this workflow deliberately avoids.
- name: Upload benchmark results
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: bench-output
path: engine/bench-output.txt
if-no-files-found: error