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
8 changes: 5 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -239,7 +239,9 @@ jobs:
# shared one, cargo's mtime check can reuse one tree's build for the other
# and compare a binary against itself. Both trees build the PR's copy of
# the example, so both sides run one workload; a PR whose example calls
# API the base lacks cannot be compared and reads INCOMPLETE.
# API the base lacks cannot be compared and reads INCOMPLETE. Both build
# with `--features macros`, so the cases behind it, the `#[cachekit]` path,
# are measured too.
perf-ir:
name: Instruction counts vs base
if: github.event_name == 'pull_request'
Expand Down Expand Up @@ -320,8 +322,8 @@ jobs:
env:
BASE_LABEL: ${{ steps.base.outputs.label }}
run: |
(cd "$RUNNER_TEMP/ir/head" && CARGO_TARGET_DIR=../head-target cargo build --locked --release --example bench_hot_path)
(cd "$RUNNER_TEMP/ir/base" && CARGO_TARGET_DIR=../base-target cargo build --locked --release --example bench_hot_path) || {
(cd "$RUNNER_TEMP/ir/head" && CARGO_TARGET_DIR=../head-target cargo build --locked --release --features macros --example bench_hot_path)
(cd "$RUNNER_TEMP/ir/base" && CARGO_TARGET_DIR=../base-target cargo build --locked --release --features macros --example bench_hot_path) || {
Comment thread
coderabbitai[bot] marked this conversation as resolved.
Resolved
{
echo '### Instruction counts: INCOMPLETE'
echo
Expand Down
7 changes: 4 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -924,9 +924,10 @@ reports either one as exit 2.

CI runs this comparison on every pull request (the **Instruction counts vs
base** check): it builds the pull request and the commit it merges into, each
in its own target directory, measures both on the same runner, and posts the
verdict as one comment it edits in place (a pull request from a fork gets no
comment; its verdict is in the run summary). A case it did not measure reads
in its own target directory and with `--features macros` (the `#[cachekit]`
cases need it), measures both on the same runner, and posts the verdict as
one comment it edits in place (a pull request from a fork gets no comment; its
verdict is in the run summary). A case it did not measure reads
INCOMPLETE, never PASS. A release pull request is measured against the last
release tag instead. The check is not required: a deliberate cost increase is
accepted at review.
Expand Down
Loading