Přeskočit na obsah

Tato stránka byla automaticky přeložena z angličtiny, jediného jazyka, ve kterém se tento web píše. Číst originál.

I3939 — The executable and the rustdoc surface are built once per run and downloaded by the jobs that drive them

Build the debug executable in one `build` job and the rustdoc surface in one `rustdoc-surface` job, both right after plan, and have the suite shards, evidence, ui and mesh-lab download them through one composite action that falls back to building when the artifact is missing or its provenance is not HEAD.

PŘIPRAVENO vlna 0 · p2 · profil implementation · běží samostatně

Součást ci-critical-path — Kritická cesta od změny k jejímu verdiktu a od mergi k ověřenému nasazení běží za tepla pod minutu.

Připraveno. Všechny závislosti jsou hotové, takže majordomus plan start I3939 bude přijato.

Cíl

Build the debug executable in one `build` job and the rustdoc surface in one `rustdoc-surface` job, both right after plan, and have the suite shards, evidence, ui and mesh-lab download them through one composite action that falls back to building when the artifact is missing or its provenance is not HEAD.

Proč

validate.yml builds the same executable in eight jobs (about 4.5 min each) and the rustdoc surface in seven (about 2.3 min each), and lane 3's majordomus-cli artifact is uploaded and never downloaded (run 39762797718). Designed on 2026-10-22: the wall-clock gain is small — about 5 min off evidence at the end of the critical path, shards roughly neutral (a job-level needs cannot overlap their setup with the build), mesh-lab and site 1-1.5 min slower off the path — and the saving is about 30 runner-minutes per full plan (about 4% of 740-860), which also shortens queueing when runs overlap; a compile error fails one job in about 2 min instead of six.

Aktuální stav

Built. validate.yml has a `build` job (the debug executable, uploaded as `majordomus-exe` with its provenance: commit, target, rustc, Cargo.lock digest) and a `rustdoc-surface` job (target/web/rustdoc packed, uploaded as `rustdoc-surface`) right after plan, each with the union of its consumers' plan outputs as its `if:`. suite-shard (both), evidence, ui-shard (both), ui-checks (both), ui (the report) and mesh-lab take them through .github/actions/majordomus-bin, which downloads with continue-on-error, restores the mode, checks the provenance against HEAD and the Cargo.lock digest, exports MAJORDOMUS_BIN, and builds the old way (cargo build, ./.github/actions/rustdoc) when an artifact is missing or is another commit's. The ci job needs both producers. macos keeps its own build and the site job its own rustdoc. Case 3939 holds the wiring.

Cílový stav

The first master run after landing is the measurement: evidence about 5 min shorter on a full plan than on run 39762797718, shards roughly neutral, mesh-lab 1-1.5 min slower off the critical path, about 30 runner-minutes saved per full plan. The per-job rust caches of build and rustdoc-surface start cold once (about 8-10 min).

Rozsah

  • .github/workflows/validate.yml
  • .github/actions/majordomus-bin
  • test/cases/3939_the_executable_is_built_once_per_run.sh
  • .ai/repo/ci/gates.yaml
  • .ai/repo/project/issues/I3939.yaml

Mimo rozsah

  • .github/actions/rustdoc and pages.yml's use of it (case 97_pages_fast_path pins them)
  • rust lane 3's own rustdoc and its majordomus-cli-<triple> artifact (case 401 pins it)

Závislosti

Žádné. Tento úkol je kořenem grafu.

Kritéria přijetí

  • Outside macos, the crate's cargo build appears only in the build job, and a case says so
  • Every consumer's plan-output condition is covered by its producer's, shown by a case; a narrow plan skips both producers
  • Cases 401, 357, 3019, 3402 and 26 pass; evidence is about 5 min shorter on a full plan than on run 39762797718

Validace

  • actionlint .github/workflows/validate.yml

Požadované důkazy

  • sada testů

Důkazy

Nic nezaznamenáno. Za každým tokenem výše musí stát příkaz nebo artefakt, než lze tento úkol dokončit; vyprávění se odmítá.

Riziko

Per-job rust caches start cold for the new jobs; the first master run after landing pays about 8-10 min once. upload-artifact drops file modes, hence chmod; v4 refuses a duplicate artifact name in a run, hence majordomus-exe rather than lane 3's name.

Časová osa

zahájeno
—
ověřeno
—
dokončeno
—

Tato tři pole, důkazy výše a stav závislostí jsou vše, z čeho se stav skládá. Neexistuje žádné pole stavu, které by s nimi mohlo být v rozporu.

Canonical record: .ai/repo/project/issues/I3939.yaml. Read it back with majordomus plan show I3939.

Prohledává názvy a popisy všech stránek, které tento web publikuje.