Skip to content

perf(ci): reuse build results across workflows - #810

Merged
donbeave merged 224 commits into
mainfrom
perf/subminute-ci
Aug 8, 2026
Merged

perf(ci): reuse build results across workflows#810
donbeave merged 224 commits into
mainfrom
perf/subminute-ci

Conversation

@donbeave

@donbeave donbeave commented Jul 16, 2026

Copy link
Copy Markdown
Member

Summary

Make GitHub-hosted runners the default jackin❯ lane while preserving explicit Velnor and combined execution. Reuse prepared Rust tools, registry state, and exact crate results so clean GitHub runs avoid repeated downloads and compilation. Keep publication single-writer when both lanes run.

What ships

  • GitHub is the omitted/default lane for CI, Docs, Construct, Preview, Release, and jackin-dev workflows.
  • Dispatch inputs accept github, velnor, and both; both retains one artifact writer.
  • GitHub jobs use pinned Ubuntu 26.04 labels.
  • Prepared xtask/tool artifacts and registry caches are runner-neutral.
  • Rust test jobs remain complete, independently readable crate jobs.
  • Workflow concurrency and job timeouts bound redundant work.
  • Hosted cross-validation installs Zig explicitly and uses a deterministic cargo-zigbuild wrapper.
  • CI performance auditing accepts ANSI-bearing GitHub job logs.

Verification evidence

Current head e299a42:

  • actionlint .github/workflows/ci.yml
  • cargo test -p jackin-xtask: 278 passed
  • cargo fmt --check
  • git diff --check
  • GitHub Actions required checks are the merge gate.

Deviations

Mutation-only publication and cleanup workflows remain single-writer. They do not duplicate writes under both.

Not included

Remote sccache and RFC3161 attestation remain separate work.

Verify locally

actionlint .github/workflows/*.yml
cargo fmt --check
cargo clippy -p jackin-xtask --all-targets -- -D warnings
cargo nextest run -p jackin-xtask
cargo run -p jackin-xtask --locked -- lint ratchet

Migration notes

None.

donbeave and others added 8 commits July 16, 2026 21:19
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Codex <codex@openai.com>
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Codex <codex@openai.com>
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Codex <codex@openai.com>
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Codex <codex@openai.com>
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Codex <codex@openai.com>
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Codex <codex@openai.com>
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Codex <codex@openai.com>
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Codex <codex@openai.com>
@donbeave donbeave changed the title perf(ci): collapse crate target transport perf(ci): reuse crate targets and docs proofs Jul 16, 2026
donbeave and others added 7 commits July 16, 2026 22:07
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Codex <codex@openai.com>
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Codex <codex@openai.com>
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Codex <codex@openai.com>
Version the debugless Cargo profile as target contract v7 so incompatible build generations cannot accumulate in one archive. Share the warmup producer's dependency outputs with the complete per-crate test job.

Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Codex <codex@openai.com>
Use attempt-scoped GitHub job APIs with validated retries so transient HTML 503 responses cannot break required aggregators. Fetch job logs concurrently to keep the complete audit below the one-minute budget.

Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Codex <codex@openai.com>
GitHub returns 404 for skipped jobs because no log archive exists. Keep missing logs fatal for executed jobs while excluding semantically logless skipped jobs from the concurrent audit.

Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Codex <codex@openai.com>
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Codex <codex@openai.com>
@donbeave donbeave changed the title perf(ci): reuse crate targets and docs proofs perf(ci): reuse build results across workflows Jul 16, 2026
donbeave and others added 13 commits July 16, 2026 23:26
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Codex <codex@openai.com>
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Codex <codex@openai.com>
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Codex <codex@openai.com>
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Codex <codex@openai.com>
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Codex <codex@openai.com>
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Codex <codex@openai.com>
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Codex <codex@openai.com>
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Codex <codex@openai.com>
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Codex <codex@openai.com>
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Codex <codex@openai.com>
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Codex <codex@openai.com>
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Codex <codex@openai.com>
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Codex <codex@openai.com>
donbeave and others added 12 commits July 22, 2026 21:13
Velnor nextest was failing with missing toolchain manifest / cargo
component conflict from polluted rustup-v2 caches.

Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Parallel zigbuild/mold for multi-target release-archives hit
ProcessFdQuotaExceeded on multi-slot Velnor hosts. Build targets
serially with full job count each; raise soft nofile in the
validator CI step.

Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Restore performance audit script dropped during main reconciliation and pass the required artifact token.

Co-authored-by: Codex <codex@openai.com>
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Avoids concurrent capacity peak holds across many Velnor slots on
the shared host (capacity_backpressure / pre_execution rejects).

Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Job env cannot use runner.*; actionlint fails closed on PR CI.

Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Shared Velnor slots leave partial toolchains; uninstall alone leaves
component conflicts. Hard-remove trees + update-hashes and retry once.

Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Use an explicit drop for ignored removal errors and collapse the nested update-hash guard required by the upgraded lint set.

Co-authored-by: Codex <codex@openai.com>
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
@donbeave
donbeave force-pushed the perf/subminute-ci branch 5 times, most recently from 3f0e8ac to e0a70cc Compare July 25, 2026 04:48
donbeave and others added 9 commits August 7, 2026 12:00
Co-authored-by: Codex <codex@openai.com>
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Remove obsolete runner-selection jobs and keep Velnor dispatches independent from GitHub-hosted control jobs.

Co-authored-by: Codex <codex@openai.com>
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Use the prepared xtask for documentation contracts and bump jackin-dev after its release workflow changed.

Co-authored-by: Codex <codex@openai.com>
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Codex <codex@openai.com>
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Codex <codex@openai.com>
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Codex <codex@openai.com>
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Codex <codex@openai.com>
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Codex <codex@openai.com>
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Codex <codex@openai.com>
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
@donbeave
donbeave merged commit b7c5dbf into main Aug 8, 2026
37 checks passed
@donbeave
donbeave deleted the perf/subminute-ci branch August 8, 2026 16:47
donbeave added a commit that referenced this pull request Aug 12, 2026
## Summary\n\n- restore the release archive action still consumed by
tagged builds\n- make release workspace tests independent from
CI-prepared artifacts\n- keep tagged-source checkout, locked Nextest,
archive signing, SBOM, and attestation gates\n\n## Root cause\n\nRelease
v0.6.0 exposed two stale dependencies: #810 deleted
`build-release-archive` while `release.yml` still invoked it, and the
release test fanout consumed prepared CI artifacts without a release
producer.\n\n## Verification\n\n- `actionlint
.github/workflows/*.yml`\n- `git diff --check`

Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant