Skip to content

Cache Windows dependency resolution with daily refreshes - #919

Merged
sds merged 1 commit into
mainfrom
perf/cache-windows-dependency-lock
Nov 5, 2026
Merged

sds merged 1 commit into
mainfrom
perf/cache-windows-dependency-lock

Conversation

@sds

@sds sds commented Nov 5, 2026 •

Copy link
Copy Markdown
Owner

Windows matrix jobs fetch gem metadata and resolve dependencies before restoring the existing gem cache because the repository intentionally does not track its root lock file. Cache the generated Gemfile.lock before ruby/setup-ruby, using a UTC daily key plus the Ruby series and dependency/version file hashes. Ubuntu and lint retain their existing setup.

A warm-cache GitHub experiment reduced cache restore plus Ruby setup from 14s/11s/22s to 7s/6s/10s for Ruby 3.3/3.4/4.0. Benchmark.

All three full CI attempts passed 10,218 example executions each. Both warm attempts hit all 15 Windows lock caches and made no Windows metadata fetches. Warm workflow times were 117s and 107s; hosted-runner startup, checkout, and reporting variation obscures a separate end-to-end gain. All required and optional checks passed.

@sds
sds merged commit 14052cd into main Nov 5, 2026
79 checks passed
@sds
sds deleted the perf/cache-windows-dependency-lock branch November 5, 2026 19:22
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