Skip to content
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

[ci] Use Node 20.10.0+ for check-packages #25709

Merged
merged 1 commit into from Dec 2, 2023
Merged

[ci] Use Node 20.10.0+ for check-packages #25709

merged 1 commit into from Dec 2, 2023

Conversation

ide
Copy link
Member

@ide ide commented Dec 2, 2023

Reviewers: this PR has an extra commit to force CI to check all packages. This commit will be reverted before landing.

Why

Node 20.10.0 includes a memory leak fix in V8's compilation cache. This matters for Jest test suites, which repeatedly discard and reload the environment. See jestjs/jest#11956.

With a sample size of one, the check-packages step ran in 27m46s with Node 20.10.0 and 31m27s with Node 18.18.2.

How

Used setup-node to explicitly install Node 20. Getting the latest version will include the V8 fix. Also upgraded the checkout action (breaking change is that it uses Node 20 itself internally).

If this works well, we could consider using setup-node's own Yarn node_modules caching instead of our own but that is out of the scope of this PR.

Test Plan

Make sure this passes in CI.

Why
---
Node 20.10.0 includes a memory leak fix in V8's compilation cache. This matters for Jest test suites, which repeatedly discard and reload the environment. See jestjs/jest#11956.

How
---
Used setup-node to explicitly install Node 20. Getting the latest version will include the V8 fix. Also upgraded the checkout action (breaking change is that it uses Node 20 itself internally).

If this works well, we could consider using setup-node's own Yarn node_modules caching instead of our own but that is out of the scope of this PR.

Test Plan
---
Make sure this passes in CI.
@expo-bot expo-bot added the bot: passed checks ExpoBot has nothing to complain about label Dec 2, 2023
@ide ide marked this pull request as ready for review December 2, 2023 03:11
@ide ide merged commit 091fb6a into main Dec 2, 2023
4 checks passed
@ide ide deleted the @ide/node20ci branch December 2, 2023 17:19
onizam95 pushed a commit to onizam95/expo-av-drm that referenced this pull request Jan 15, 2024
Why
---
Node 20.10.0 includes a memory leak fix in V8's compilation cache. This
matters for Jest test suites, which repeatedly discard and reload the
environment. See jestjs/jest#11956.

With a sample size of one, the check-packages step ran in
[27m46s](https://github.com/expo/expo/actions/runs/7067532822/job/19241013344?pr=25709)
with Node 20.10.0 and
[31m27s](https://github.com/expo/expo/actions/runs/7067530553/job/19241009110?pr=25711)
with Node 18.18.2.

How
---
Used setup-node to explicitly install Node 20. Getting the latest
version will include the V8 fix. Also upgraded the checkout action
(breaking change is that it uses Node 20 itself internally).

If this works well, we could consider using setup-node's own Yarn
node_modules caching instead of our own but that is out of the scope of
this PR.

Test Plan
---
Make sure this passes in CI.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bot: passed checks ExpoBot has nothing to complain about
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants