Skip to content

ci: cache Rust dependencies, split the oracle replays and shell journeys - #192

Merged
sanjevirau merged 2 commits into
mainfrom
ci/faster-runs-2
Nov 12, 2026
Merged

sanjevirau merged 2 commits into
mainfrom
ci/faster-runs-2

Conversation

@sanjevirau

Copy link
Copy Markdown
Collaborator

Second round after #191, for the 0.2.4 milestone. CI only; the packages and release builds are untouched and still compile clean.

  • Rust dependencies are cached in the seven CI jobs that compile (Swatinem/rust-cache, pinned by commit). The jobs that build the debug engine share one cache, saved by the journeys' engine job; the Rust quality gate has its own.
  • The oracle corpus replays run as two jobs of about equal length: Functions with Cloud Tasks, and Auth with Pub/Sub. Each writes its own ledger records, which the ledger job joins as before.
  • The shell journeys run as two jobs: the typing journey over the Firestore pages (over 4 of the project's 10 minutes) and the rest. The tests and their order within each job are unchanged.

The first run on this PR fills the cache; timings from a second run follow in a comment.

🤖 Generated with Claude Code

https://claude.ai/code/session_01APfZAFCQzCmvhJqWKMT47g

Seven CI jobs compiled every dependency from nothing. They now restore
the dependencies (Swatinem/rust-cache, pinned): one cache for the jobs
that build the debug engine, saved by the journeys' engine job, and one
for the Rust quality gate. The packages and release builds are untouched
and still compile clean.

The oracle corpus replays run as two jobs of about equal length
(Functions with Cloud Tasks, Auth with Pub/Sub), and the shell journeys
as two: the typing journey over the Firestore pages, over 4 of the
project's 10 minutes, and the rest.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01APfZAFCQzCmvhJqWKMT47g
@sanjevirau sanjevirau added this to the 0.2.4 milestone Nov 12, 2026
The repository runs GitHub-owned and verified actions only, so the run
with Swatinem/rust-cache did not start. The same two caches through
actions/cache: the registry and target, keyed on the Rust version and
Cargo.lock; the other jobs restore without saving.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01APfZAFCQzCmvhJqWKMT47g
@sanjevirau

Copy link
Copy Markdown
Collaborator Author

Timings. The first run filled the caches (engine 677 MB, Rust gate 2.3 GB) and queued 4–5 minutes behind main's CI for #191; the second ran with them.

After #191 This PR, caches filled
CI 13.9 and 13.4 min 12.6 min; everything but the Firebase JS SDK jobs done at 9.9
Rust quality gate 10.6 min 7.5 min (clippy 121 → 35 s, tests 469 → 281 s, 96 s to restore)
Shell journeys, from the run's start 13.9 min 7.7 min (two jobs of 5.7)
Oracle corpus replays 12.0 min 7.7 and 6.0 min
The journeys' engine 2.5 min 1.7 min
Runner time 144 min 143 min

The four Firebase JS SDK browser jobs (8.9–12.3 min, the SDK's own integration suite) now set the run's length.

@sanjevirau
sanjevirau merged commit c4e53e1 into main Nov 12, 2026
44 checks passed
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