-
Notifications
You must be signed in to change notification settings - Fork 360
Description
This issue refers to github-action usage with Yarn Modern Plug'n'Play (pnp).
Current behavior
When .github/workflows/example-yarn-modern-pnp.yml is run, it shows npx being called and not finding the installed version of cypress.
For example job 4959218510 shows:
/usr/local/bin/npx cypress cache list
npm WARN exec The following package was not found and will be installed: cypress@12.12.0
┌─────────┬───────────────────┐
│ version │ last used │
├─────────┼───────────────────┤
│ 12.11.0 │ a few seconds ago │
├─────────┼───────────────────┤
│ 12.12.0 │ 3 days ago │
└─────────┴───────────────────┘
/usr/local/bin/npx cypress verify
(Also reproducible with later versions.)
With Yarn Plug'n'Play there is no directory node_modules set up and therefore npx cannot find cypress and it installs instead the latest version, which may or may not correspond to the version specified in yarn.lock.
On a local machine, or a CI workflow which preserves the npm-cache/_npx cache, a previously installed version of Cypress may also be used.
Desired behavior
When Yarn Plug'n'Play is in use, then cache list and verify should use the installed version of Cypress (from yarn.lock) and not install a different version.
Suggestion
- Address this issue through implementation of full native Yarn Modern support. See feature request Implement native Yarn Modern support #969.