Skip to content

fix(ci): cache esbuild snapshots to avoid 429 rate limiting#8921

Merged
IWANABETHATGUY merged 2 commits intomainfrom
fix/ci-cache-esbuild-snapshots
Mar 26, 2026
Merged

fix(ci): cache esbuild snapshots to avoid 429 rate limiting#8921
IWANABETHATGUY merged 2 commits intomainfrom
fix/ci-cache-esbuild-snapshots

Conversation

@IWANABETHATGUY
Copy link
Copy Markdown
Member

@IWANABETHATGUY IWANABETHATGUY commented Mar 26, 2026

Summary

The esbuild-snap-diff step in reusable-cargo-test.yml downloads 14 snapshot files from raw.githubusercontent.com on every CI run, which triggers HTTP 429 (Too Many Requests) errors.

  • Add actions/cache step to persist esbuild snapshots across CI runs, keyed by esbuild version hash (urls.ts)
  • Add 24h TTL in download-snapshots.ts to skip downloads when cached files are fresh
  • Fall back to stale cached files when download fails (e.g. 429) instead of crashing

Closes #8918

Test plan

  • CI cargo-test job passes without downloading snapshots on cache hit
  • Cache invalidates when esbuild version in urls.ts changes

🤖 Generated with Claude Code

@netlify
Copy link
Copy Markdown

netlify bot commented Mar 26, 2026

Deploy Preview for rolldown-rs canceled.

Name Link
🔨 Latest commit 050be83
🔍 Latest deploy log https://app.netlify.com/projects/rolldown-rs/deploys/69c543d6fc880f0009d438b4

Copy link
Copy Markdown
Member Author

IWANABETHATGUY commented Mar 26, 2026

Merge activity

  • Mar 26, 2:02 PM UTC: The merge label 'graphite: merge-when-ready' was detected. This PR will be added to the Graphite merge queue once it meets the requirements.
  • Mar 26, 2:43 PM UTC: The merge label 'graphite: merge-when-ready' was detected. This PR will be added to the Graphite merge queue once it meets the requirements.

IWANABETHATGUY and others added 2 commits March 26, 2026 22:33
Cache downloaded esbuild snapshot files across CI runs using GitHub
Actions cache, keyed by esbuild version. Add 24h TTL and stale cache
fallback in download-snapshots.ts so 429 errors no longer break CI.

Closes #8918

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
@IWANABETHATGUY IWANABETHATGUY force-pushed the fix/ci-cache-esbuild-snapshots branch from cce32a3 to 050be83 Compare March 26, 2026 14:33
@IWANABETHATGUY IWANABETHATGUY merged commit e0dd665 into main Mar 26, 2026
52 of 53 checks passed
@IWANABETHATGUY IWANABETHATGUY deleted the fix/ci-cache-esbuild-snapshots branch March 26, 2026 14:42
IWANABETHATGUY added a commit that referenced this pull request Mar 27, 2026
## Summary

The `esbuild-snap-diff` step in `reusable-cargo-test.yml` downloads 14
snapshot files from `raw.githubusercontent.com` on every CI run, which
triggers HTTP 429 (Too Many Requests) errors.

- Add `actions/cache` step to persist esbuild snapshots across CI runs,
keyed by esbuild version hash (`urls.ts`)
- Add 24h TTL in `download-snapshots.ts` to skip downloads when cached
files are fresh
- Fall back to stale cached files when download fails (e.g. 429) instead
of crashing

Closes #8918

## Test plan

- [x] CI `cargo-test` job passes without downloading snapshots on cache
hit
- [x] Cache invalidates when esbuild version in `urls.ts` changes

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 4.6 (1M context) <[email protected]>
IWANABETHATGUY added a commit that referenced this pull request Mar 27, 2026
## Summary

The `esbuild-snap-diff` step in `reusable-cargo-test.yml` downloads 14
snapshot files from `raw.githubusercontent.com` on every CI run, which
triggers HTTP 429 (Too Many Requests) errors.

- Add `actions/cache` step to persist esbuild snapshots across CI runs,
keyed by esbuild version hash (`urls.ts`)
- Add 24h TTL in `download-snapshots.ts` to skip downloads when cached
files are fresh
- Fall back to stale cached files when download fails (e.g. 429) instead
of crashing

Closes #8918

## Test plan

- [x] CI `cargo-test` job passes without downloading snapshots on cache
hit
- [x] Cache invalidates when esbuild version in `urls.ts` changes

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 4.6 (1M context) <[email protected]>
IWANABETHATGUY added a commit that referenced this pull request Mar 27, 2026
## Summary

The `esbuild-snap-diff` step in `reusable-cargo-test.yml` downloads 14
snapshot files from `raw.githubusercontent.com` on every CI run, which
triggers HTTP 429 (Too Many Requests) errors.

- Add `actions/cache` step to persist esbuild snapshots across CI runs,
keyed by esbuild version hash (`urls.ts`)
- Add 24h TTL in `download-snapshots.ts` to skip downloads when cached
files are fresh
- Fall back to stale cached files when download fails (e.g. 429) instead
of crashing

Closes #8918

## Test plan

- [x] CI `cargo-test` job passes without downloading snapshots on cache
hit
- [x] Cache invalidates when esbuild version in `urls.ts` changes

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 4.6 (1M context) <[email protected]>
This was referenced Apr 1, 2026
shulaoda added a commit that referenced this pull request Apr 1, 2026
## [1.0.0-rc.13] - 2026-04-01

### 🚀 Features

- add friendly error for unloadable virtual modules (#8955) by @sapphi-red
- better error message for unsupported CSS error (#8911) by @sapphi-red

### 🐛 Bug Fixes

- prevent chunk merging from leaking entry side effects (#8979) by @IWANABETHATGUY
- correct inlining based on module's def format and esModule flag (#8975) by @h-a-n-a
- generate init calls for excluded re-exports in strict execution order (#8858) by @IWANABETHATGUY
- consistent order for `meta.chunks` in `renderChunk` hook (#8956) by @sapphi-red
- subpath imports in glob imports failing to find files (#8885) by @kalvenschraut
- browser: bundle binding types in dts output (#8930) by @nyan-left
- ci: guard artifact download step in `vite-test-ubuntu` when build is skipped (#8934) by @Copilot
- track CJS re-export import records to fix inline const and tree-shaking (#8925) by @h-a-n-a
- use ImportKind::Import for common-chunk root computation (#8899) by @IWANABETHATGUY
- watch: clear emitted_filenames between rebuilds (#8914) by @IWANABETHATGUY
- ci: cache esbuild snapshots to avoid 429 rate limiting (#8921) by @IWANABETHATGUY
- always check circular deps in chunk optimizer (#8915) by @IWANABETHATGUY
- don't mark calls to reassigned bindings as pure (#8917) by @IWANABETHATGUY
- magic-string: throw TypeError for non-string content args (#8905) by @IWANABETHATGUY
- magic-string: add split-point validation and overwrite/update options (#8904) by @IWANABETHATGUY

### 🚜 Refactor

- pre-compute has_side_effects on ChunkCandidate (#8981) by @IWANABETHATGUY
- cleanup and simplify in dynamic_import.rs (#8927) by @ulrichstark
- rename came_from_cjs to came_from_commonjs for consistency (#8938) by @IWANABETHATGUY
- inline `create_ecma_view` return destructuring and remove redundant binding (#8932) by @shulaoda

### 📚 Documentation

- document ensure_lazy_module_initialization_order in code-splitting design doc (#8931) by @IWANABETHATGUY

### 🧪 Testing

- add regression test for runtime helper circular dependency (#8958) by @h-a-n-a
- enable 8 previously-skipped MagicString remove tests (#8945) by @IWANABETHATGUY
- add test for why PureAnnotation is needed in execution order check (#8933) by @IWANABETHATGUY

### ⚙️ Miscellaneous Tasks

- add `@emnapi/runtime` and `@emnapi/core` as direct deps of `@rolldown/browser` (#8978) by @Copilot
- deps: update dependency vite-plus to v0.1.15 (#8970) by @renovate[bot]
- deps: update dependency oxfmt to ^0.43.0 (#8969) by @renovate[bot]
- deps: upgrade oxc to 0.123.0 (#8967) by @shulaoda
- justfile: deduplicate update-submodule as alias of setup-submodule (#8968) by @shulaoda
- deps: update rollup submodule for tests to v4.60.1 (#8965) by @sapphi-red
- deps: update test262 submodule for tests (#8966) by @sapphi-red
- remove unused `type-check` scripts (#8957) by @sapphi-red
- deps: update actions/cache action to v5 (#8953) by @renovate[bot]
- deps: update npm packages to v6 (major) (#8954) by @renovate[bot]
- deps: update npm packages (#8948) by @renovate[bot]
- deps: update rust crates (#8949) by @renovate[bot]
- deps: update github-actions (#8947) by @renovate[bot]
- deps: update napi (#8943) by @renovate[bot]
- deps: update dependency rolldown-plugin-dts to ^0.23.0 (#8944) by @renovate[bot]
- regenerate testing snapshots (#8928) by @ulrichstark
- deps: update dependency rust to v1.94.1 (#8923) by @renovate[bot]

### ❤️ New Contributors

* @kalvenschraut made their first contribution in [#8885](#8885)
* @nyan-left made their first contribution in [#8930](#8930)

Co-authored-by: shulaoda <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

CI 429 too many requests

3 participants