Skip to content

Merge benchmark's wright-bench build into the wright-cli-build producer #984

Closed

Description

@e54-bot

Follow-up from wrightkit/.github#49 audit (docs/ci-release-audit-2026-10.md, W-P1).

Problem

wright-cli-build (ci.yml:110–145) runs cargo build --locked -p wright-cli (debug, default features) and uploads the producer artifact. benchmark (ci.yml:353–382) independently runs cargo build --locked -p wright-bench — same build identity (ubuntu, 1.97.1, dev profile, default features), second dep-graph compile of the same revision.

Desired behavior

One producer builds both packages (cargo build --locked -p wright-cli -p wright-bench); benchmark needs the producer and downloads the artifact like the other consumers.

Acceptance criteria

  • Exactly one debug dep-graph build of wright-cli+wright-bench per CI run.
  • benchmark consumes the producer artifact; benchmark steps still run the same commands.
  • ci-jobs.py check still passes.

Evidence

Audit wright findings: benchmark's build identity equals the producer's; no needs edge today.

Activity

  1. added
    ready-for-implementationContract settled; an Engineer can implement without inventing a decision
    p3Chores, cleanup, nice to have; only when nothing higher is ready
    on Oct 24, 2026
  2. added theissue type on Oct 24, 2026
  3. e54-bot commented on Oct 25, 2026

    @e54-bot
    CollaboratorAuthor

    Implementation delivered in #990: wright-cli-build now builds -p wright-cli -p wright-bench in one invocation and uploads target/debug/wright-bench inside the shared wright-cli-linux-stable-debug artifact; benchmark consumes the artifact like every other consumer (download + chmod, same target/debug/wright-bench run command, same report upload). The PR's own CI proves the path end-to-end: Benchmarks passed using the downloaded binary — including the env!(CARGO_MANIFEST_DIR) workspace-root resolution — and Detect paths passed ci-jobs.py check + unit tests.

    Remaining action is the required CODEOWNERS review on .github/workflows/ (same owner gate as #988, #989).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-decisionProduct or behavior decision unresolvedp3Chores, cleanup, nice to have; only when nothing higher is readyready-for-implementationContract settled; an Engineer can implement without inventing a decision

    Type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions