Skip to content

Conversation

johnayeni
Copy link
Contributor

@johnayeni johnayeni commented Oct 1, 2025

Summary

This PR upgrades the yarn package manager version we use for this project from version 1 to version 4. This provides a number of benefits especially when it comes to installs and our install time for packages seems to be reduced by an average of about 10 seconds.
As part of this upgrade we are now going to also be using corepack which can help us better manage package managers if we decide to switch to a different one.

Some other improvements have been included in this PR as well

  • Caching nodule modules to skip the install step for installing npm packages if no new package have been added
  • Caching playwright binaries for chromium and firefox browsers to allow skipping the installation for e2e tests
  • Only install the necessary browser dependency for each CI e2e job

CI perfomance benchmarking

Yarn 4 install Yarn 1 install
~26s ~35s
E2E Chromium, API v71 (with cache) E2E Chromium, API v71 (without cache)
8m 7s 9m 36s
E2E Firefox, API v71 (with cache) E2E Firefox, API v71 (without cache)
7m 35s 10m 56s

Tested scenarios

  • Local development and builds
  • CI build
  • Unit and e2e tests

Fixed issue:

Copy link

changeset-bot bot commented Oct 1, 2025

⚠️ No Changeset found

Latest commit: d242338

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

Copy link

netlify bot commented Oct 1, 2025

Deploy Preview for adyen-web ready!

Name Link
🔨 Latest commit d242338
🔍 Latest deploy log https://app.netlify.com/projects/adyen-web/deploys/68de67d89f7a1900082f3697
😎 Deploy Preview https://deploy-preview-3546.checkout-web-dev.adyen.com
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

Copy link
Contributor

github-actions bot commented Oct 1, 2025

size-limit report 📦

Path Size
UMD 113.87 KB (0%)
Auto 120.29 KB (0%)
ESM - Core 23.85 KB (0%)
ESM - Core + Card 64.05 KB (0%)
ESM - Core + Dropin with Card 68.79 KB (0%)

@johnayeni johnayeni marked this pull request as ready for review October 2, 2025 11:54
Copy link

sonarqubecloud bot commented Oct 2, 2025

path: node_modules
key: ${{ runner.os }}-cache-${{ env.cache-name }}-node-${{ matrix.node-version }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-cache-${{ env.cache-name }}-node-${{ matrix.node-version }}-yarn-
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we want the restore-keys? If there's no match on the hash for yarn.lock should we not just rebuild?

run: echo "PLAYWRIGHT_VERSION=$(jq -r '.devDependencies["@playwright/test"]' packages/e2e-playwright/package.json)" >> $GITHUB_ENV

- name: Cache Playwright
# Using a cache for the webkit binary files causes this error on subsequent runs
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also what is the difference in performance we get here, can you make the comparison?

https://playwright.dev/docs/ci#caching-browsers

@@ -0,0 +1 @@
nodeLinker: node-modules
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also would it be beneficial to change it to pnp or pnpm for example?

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.

2 participants