Skip to content

ci: preserve shared Rust caches and avoid unnecessary product builds - #1324

Merged
mergify[bot] merged 1 commit into
masterfrom
ci/rust-cache-and-queue-classification
Oct 16, 2026
Merged

mergify[bot] merged 1 commit into
masterfrom
ci/rust-cache-and-queue-classification

Conversation

@tignear

@tignear tignear commented Oct 15, 2026

Copy link
Copy Markdown
Contributor

Problem and change

Rust Tests job 116692374518 spent 17m36s compiling before starting 13,562 tests, with no restored cache. During investigation, the repository used about 10 GB of caches, mostly isolated PR merge refs, while master had no Rust cache. A .mergify.yml-only change also fell through the unknown-path classifier and unnecessarily selected every product job.

  • Classify .mergify.yml as script validation. Mixed Rust changes and unknown paths retain broad coverage.
  • Restore Rust caches for every CI run, but save the eight CI Rust caches only from the default branch. This avoids one cache copy per PR evicting the base caches other PRs can restore.
  • Add a master-only dependency-cache warmup on toolchain/manifest/cache-workflow changes and manual dispatch. Its job ID, toolchain, environment, and features match Rust Tests. On a cache miss it builds test targets with cargo nextest list without running tests; an exact hit skips compilation. Daily master CI populates the other job caches.

Test coverage and required checks are unchanged. Workspace binaries are not added to the cache. Initial warmup and new toolchains still require compilation; runtime improvement needs measurement after the shared cache is populated. The change reaches develop through the existing master-to-develop sync.

Validation

  • 47 focused classifier, Rust scope, workflow, cache-policy, and warmup consistency tests passed.
  • actionlint passed for both workflows, excluding only its existing unknown ubuntu-26.04-arm label diagnostic.
  • Confirmed local nextest supports list --workspace --locked --message-format json; diff checks passed.
  • Mandatory pre-push checks run on push. No extra local compiler test suite was needed because compiler behavior is unchanged.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 15, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-15T22:50:18.473538Z e9a79d7 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e9a79d71a3

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread scripts/ci-changes.mjs
}

if (startsWithAny(path, ["scripts/"])) {
if (path === ".mergify.yml" || startsWithAny(path, ["scripts/"])) {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Classify rust-cache workflow edits for script validation

When a PR changes only .github/workflows/rust-cache.yml, this condition does not set scripts, and the later generic .github/workflows/ branch treats the file as neutral. Consequently the lint job skips node --test scripts/*.test.mjs, so the newly added test that reads this workflow never checks the very edits it is meant to protect; a mismatch in the job ID, features, nextest version, or cache policy can therefore merge without validation. Include this workflow in the script-validation classification (or otherwise schedule its focused test).

AGENTS.md reference: AGENTS.md:L14-L16

Useful? React with 👍 / 👎.

@tignear tignear added the merge-ready Request merging through Mergify after required checks label Oct 15, 2026
@mergify mergify Bot added the queued Mergify queue entry label Oct 15, 2026
@mergify

mergify Bot commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

Merge Queue Status

  • ✅ Entered queue — 2026-10-15 23:34 UTC · Rule: changes · triggered by rule Queue explicitly requested merges
  • ✅ Checks passed · on draft merge queue: checking #1324 on master (3d7498b) #1328
  • ✅ Merged — 2026-10-16 00:35 UTC · at ccf6a1742df62a00078d107f429c292eb0434ffc · merge

This pull request spent 1 hour 1 minute 14 seconds in the queue, including 31 minutes 42 seconds running CI.

Required conditions to merge
  • check-success = Conventional Commit title
  • check-success = Queue validation
  • any of [🛡 GitHub repository ruleset rule master]:
    • check-success = @github-actions/Lint & Format
    • check-neutral = @github-actions/Lint & Format
    • check-skipped = @github-actions/Lint & Format
  • any of [🛡 GitHub repository ruleset rule master]:
    • check-success = @github-actions/NAPI Build (Linux ARM64 GNU)
    • check-neutral = @github-actions/NAPI Build (Linux ARM64 GNU)
    • check-skipped = @github-actions/NAPI Build (Linux ARM64 GNU)
  • any of [🛡 GitHub repository ruleset rule master]:
    • check-success = @github-actions/NAPI Build (Windows)
    • check-neutral = @github-actions/NAPI Build (Windows)
    • check-skipped = @github-actions/NAPI Build (Windows)
  • any of [🛡 GitHub repository ruleset rule master]:
    • check-success = @github-actions/Rust Test & NAPI Build
    • check-neutral = @github-actions/Rust Test & NAPI Build
    • check-skipped = @github-actions/Rust Test & NAPI Build
  • any of [🛡 GitHub repository ruleset rule master]:
    • check-success = @github-actions/JS Test (Ubuntu)
    • check-neutral = @github-actions/JS Test (Ubuntu)
    • check-skipped = @github-actions/JS Test (Ubuntu)
  • any of [🛡 GitHub repository ruleset rule master]:
    • check-success = @github-actions/JS Test (Windows)
    • check-neutral = @github-actions/JS Test (Windows)
    • check-skipped = @github-actions/JS Test (Windows)
  • any of [🛡 GitHub repository ruleset rule master]:
    • check-success = @github-actions/Conventional Commit title
    • check-neutral = @github-actions/Conventional Commit title
    • check-skipped = @github-actions/Conventional Commit title

@mergify
mergify Bot merged commit ccf6a17 into master Oct 16, 2026
24 checks passed
@mergify
mergify Bot deleted the ci/rust-cache-and-queue-classification branch October 16, 2026 00:35
@mergify mergify Bot removed the queued Mergify queue entry label Oct 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merge-ready Request merging through Mergify after required checks

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant