Skip to content
Merged
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
43 changes: 0 additions & 43 deletions .github/scripts/criterion-to-jsonl.py

This file was deleted.

31 changes: 23 additions & 8 deletions .github/workflows/benchmarks.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -48,22 +48,21 @@ jobs:
cache-bin: "false"
save-if: false

- name: Install shells (zsh, fish)
run: sudo apt-get update && sudo apt-get install -y zsh fish
- name: Install shells and jq
run: sudo apt-get update && sudo apt-get install -y zsh fish jq

- name: Install nushell
uses: hustcer/setup-nu@v3
with:
version: '0.114.1'

- name: 💰 Rust repo cache
- name: 💰 Large-repository fixture cache
uses: actions/cache@v6
with:
# wt-perf builds real-repo fixtures under target/wt-perf/bench-repos at
# the workspace root. `cargo clean` would wipe them, so this cache
# restores the ~15 GiB rust clone across runs.
# The fixture file pins the corpus revision. Including its hash keeps
# a prior corpus out of the cache after either constant changes.
path: target/wt-perf/bench-repos
key: bench-repos-rust-${{ runner.os }}
key: bench-repos-large-repository-${{ runner.os }}-${{ hashFiles('benches/large-repository-fixture') }}

- name: 📊 Run benchmarks
run: cargo bench
Expand All @@ -86,7 +85,23 @@ jobs:
GIST_ID: 19bb23cb9658722abfe69479d0a4f9bf
run: |
set -euo pipefail
python3 .github/scripts/criterion-to-jsonl.py --sha "$GITHUB_SHA" > new-rows.jsonl
timestamp="$(date -u +'%Y-%m-%dT%H:%M:%SZ')"
find target/criterion -path '*/new/estimates.json' -print0 \
| sort -z \
| xargs -0 -r jq -c --arg ts "$timestamp" --arg sha "$GITHUB_SHA" '
{
ts: $ts,
sha: $sha,
bench: (
input_filename
| sub("^target/criterion/"; "")
| sub("/new/estimates\\.json$"; "")
),
mean_ns: .mean.point_estimate,
stddev_ns: .std_dev.point_estimate
}
' > new-rows.jsonl
test -s new-rows.jsonl
git clone "https://x-access-token:${GITHUB_TOKEN}@gist.github.com/${GIST_ID}.git" /tmp/gist
cat new-rows.jsonl >> /tmp/gist/results.jsonl
git -C /tmp/gist \
Expand Down
1 change: 1 addition & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 4 additions & 4 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -99,12 +99,12 @@ syntax-highlighting = ["dep:tree-sitter-bash", "dep:tree-sitter-highlight"]
# Enable shell/PTY integration tests (requires bash, zsh, fish installed on system)
# Includes: shell wrapper tests, PTY-based approval prompts, TUI select, progressive rendering
shell-integration-tests = []
# Enable benchmarks whose fixture is too large for hosted CI: the rust-scale
# prune fixture (~15 GiB of rust-lang/rust worktrees, cached under
# Enable benchmarks whose fixture is too large for hosted CI: the
# large-repository prune fixture (~15 GiB of linked worktrees, cached under
# target/wt-perf/bench-repos). The daily benchmarks workflow runs plain `cargo bench`
# and must never build it; opt in locally with
# `cargo bench --bench prune --features real-repo-benches`.
real-repo-benches = []
# `cargo bench --bench prune --features large-repository-benches`.
large-repository-benches = []
# Install git-wt binary so `git wt` works as a git subcommand
git-wt = []

Expand Down
Loading
Loading