Skip to content

[ci] Fail on cache miss #32686

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Mar 20, 2025
Merged

[ci] Fail on cache miss #32686

merged 2 commits into from
Mar 20, 2025

Conversation

poteto
Copy link
Member

@poteto poteto commented Mar 20, 2025

Since we use a centralized cache we should fail subsequent steps if the child jobs are unable to restore the cache from the first 2 jobs.

Also fix some incorrect hashes used for the fixture tests.

Stack created with Sapling. Best reviewed with ReviewStack.

@poteto poteto mentioned this pull request Mar 20, 2025
@github-actions github-actions bot added the React Core Team Opened by a member of the React Core Team label Mar 20, 2025
poteto added 2 commits March 20, 2025 12:15
Try restoring from old caches as a base to speed up the case where node_modules needs updating.
Since we use a centralized cache we should fail subsequent steps if the child jobs are unable to restore the cache from the first 2 jobs.

Also fix some incorrect hashes used for the fixture tests.
@react-sizebot
Copy link

Comparing: a4f9bd5...f1c9b48

Critical size changes

Includes critical production bundles, as well as any change greater than 2%:

Name +/- Base Current +/- gzip Base gzip Current gzip
oss-stable/react-dom/cjs/react-dom.production.js = 6.68 kB 6.68 kB = 1.83 kB 1.83 kB
oss-stable/react-dom/cjs/react-dom-client.production.js = 517.29 kB 517.29 kB = 92.26 kB 92.26 kB
oss-experimental/react-dom/cjs/react-dom.production.js = 6.69 kB 6.69 kB = 1.83 kB 1.83 kB
oss-experimental/react-dom/cjs/react-dom-client.production.js = 617.58 kB 617.58 kB = 109.52 kB 109.52 kB
facebook-www/ReactDOM-prod.classic.js = 653.67 kB 653.67 kB = 115.18 kB 115.18 kB
facebook-www/ReactDOM-prod.modern.js = 643.95 kB 643.95 kB = 113.59 kB 113.59 kB

Significant size changes

Includes any change greater than 0.2%:

(No significant changes)

Generated by 🚫 dangerJS against f1c9b48

poteto added a commit that referenced this pull request Mar 20, 2025
Try restoring from old caches as a base to speed up the case where
node_modules needs updating.
---
[//]: # (BEGIN SAPLING FOOTER)
Stack created with [Sapling](https://sapling-scm.com). Best reviewed
with [ReviewStack](https://reviewstack.dev/facebook/react/pull/32685).
* #32686
* __->__ #32685
@poteto poteto merged commit 87d7e4c into main Mar 20, 2025
178 checks passed
@poteto poteto deleted the pr32686 branch March 20, 2025 16:22
poteto added a commit that referenced this pull request Mar 20, 2025
Partially reverts #32686.

PR caches inherit from caches generated in `main`. If it cannot find that cache, it will create one scoped to just that PR (and PRs that inherit from it).

There is an edge case where cache eviction can happen in the middle of a test run. If cache eviction removes a `main` cache, child jobs that depend on it will start failing because of the `fail-on-cache-miss` setting.

This PR reverts the default behavior. If this happens, the workflow will still continue in slow mode where it will `yarn install` child jobs instead of reusing from cache. This is slower but will at least allow workflows to continue.

Additionally I added restore keys so that we can fallback to other  caches if present so `yarn install` doesn't need to start over from scratch.
poteto added a commit that referenced this pull request Mar 20, 2025
Partially reverts #32686.

PR caches inherit from caches generated in `main`. If it cannot find
that cache, it will create one scoped to just that PR (and PRs that
inherit from it).

There is an edge case where cache eviction can happen in the middle of a
test run. If cache eviction removes a `main` cache, child jobs that
depend on it will start failing because of the `fail-on-cache-miss`
setting.

This PR reverts the default behavior. If this happens, the workflow will
still continue in slow mode where it will `yarn install` child jobs
instead of reusing from cache. This is slower but will at least allow
workflows to continue.

Additionally I added restore keys so that we can fallback to other
caches if present so `yarn install` doesn't need to start over from
scratch.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
React Core Team Opened by a member of the React Core Team
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants