github-action: Error "Cannot find module 'cypress'" using Yarn Berry
Hi there! This action worked with yarn berry workspaces. but, this action can’t find the “cypress” module.
Error: Cannot find module 'cypress'
I found the issue of Yarn Berry and tried as follows.
here is the relavant configuration:
jobs:
check-e2e-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Use Node.js 14.x
uses: actions/setup-node@v1
with:
node-version: 14.x
- name: Cypress run
uses: cypress-io/github-action@v2
with:
install-command : yarn install --immutable --immutable-cache
start: yarn start
wait-on: 'http://localhost:3000'
browser: chrome
headless: true
here is github-action log:
Run cypress-io/github-action@v2
with:
install-command: yarn install --immutable --immutable-cache
build: yarn run build
start: yarn start
wait-on: http://localhost:3000
browser: chrome
headless: true
record: false
config-file: cypress.json
Received 22 of 22 (100.0%), 0.0 MBs/sec
Cache Size: ~0 MB (22 B)
/usr/bin/tar --use-compress-program zstd -d -xf /home/runner/work/_temp/be0c8559-6dda-42c1-822d-2db565488a1c/cache.tzst -P -C /home/runner/work/*****/*****
Cache restored successfully
Received 0 of 353031365 (0.0%), 0.0 MBs/sec
Received 58720256 of 353031365 (16.6%), 28.0 MBs/sec
Received 155189248 of 353031365 (44.0%), 49.3 MBs/sec
Received 251658240 of 353031365 (71.3%), 60.0 MBs/sec
Received 344642757 of 353031365 (97.6%), 65.7 MBs/sec
Received 353031365 of 353031365 (100.0%), 61.3 MBs/sec
Cache Size: ~337 MB (353031365 B)
/usr/bin/tar --use-compress-program zstd -d -xf /home/runner/work/_temp/dd9a16d5-2321-41d4-9f8f-3e8284d07e08/cache.tzst -P -C /home/runner/work/*****/*****
Cache restored successfully
install command command "yarn install --immutable --immutable-cache"
current working directory "/home/runner/work/*****/*****"
/usr/local/bin/yarn install --immutable --immutable-cache
➤ YN0000: ┌ Resolution step
Resolution step
➤ YN0000: └ Completed in 0s 376ms
➤ YN0000: ┌ Fetch step
Fetch step
➤ YN0000: └ Completed in 0s 743ms
➤ YN0000: ┌ Link step
Link step
➤ YN0000: └ Completed in 0s 397ms
➤ YN0000: Done with warnings in 1s 966ms
/opt/hostedtoolcache/node/14.17.6/x64/bin/npx cypress cache list
┌─────────┬───────────────────┐
│ version │ last used │
├─────────┼───────────────────┤
│ 8.4.1 │ a few seconds ago │
├─────────┼───────────────────┤
│ 8.5.0 │ a few seconds ago │
└─────────┴───────────────────┘
build app command "yarn run build"
current working directory "/home/runner/work/*****/*****"
/usr/local/bin/yarn run build
The following changes are being made to your tsconfig.json file:
- compilerOptions.paths must not be set (aliased imports are not supported)
Creating an optimized production build...
Compiled successfully.
File sizes after gzip:
74.98 KB build/static/js/2.c1fee284.chunk.js
1.71 KB build/static/js/3.b8a66e6b.chunk.js
1.17 KB build/static/js/runtime-main.2d193d74.js
1.01 KB build/static/js/main.a1fef262.chunk.js
554 B build/static/css/main.f09a1402.chunk.css
The project was built assuming it is hosted at /.
You can control this with the homepage field in your package.json.
The build folder is ready to be deployed.
You may serve it with a static server:
yarn global add serve
serve -s build
Find out more about deployment here:
cra.link/deployment
start server "yarn start command "yarn start"
current working directory "/home/runner/work/*****/*****"
waiting on "http://localhost:3000" with timeout of 60 seconds
/usr/local/bin/yarn start
The following changes are being made to your tsconfig.json file:
- compilerOptions.paths must not be set (aliased imports are not supported)
ℹ 「wds」: Project is running at http://10.1.0.5
ℹ 「wds」: webpack output is served from
ℹ 「wds」: Content not from webpack is served from /home/runner/work/*****/*****/public
ℹ 「wds」: 404s will fallback to /
Starting the development server...
Compiled successfully!
You can now view ***** in the browser.
Local: http://localhost:3000
On Your Network: http://10.1.0.5:3000
Note that the development build is not optimized.
To create a production build, use yarn build.
Error: Cannot find module 'cypress'
Require stack:
- /home/runner/work/_actions/cypress-io/github-action/v2/dist/index.js
The above error occurred and was solved using with command.
check-e2e-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Use Node.js 14.x
uses: actions/setup-node@v1
with:
node-version: 14.x
- name: Cypress run
uses: cypress-io/github-action@v2
with:
install-command : yarn install --immutable --immutable-cache
command: yarn test:e2e
here is yarn test:e2e script:
"test:e2e": "start-server-and-test start http://localhost:3000 cypress:run",
Why can’t I find the cypress module when I use the command provided by Cypress github-action? Or did I miss something? I’d appreciate it if you had any other advice. thank you!🙏
About this issue
- Original URL
- State: closed
- Created 3 years ago
- Reactions: 6
- Comments: 21 (5 by maintainers)
Commits related to this issue
- chore(): add workaround for bug https://github.com/cypress-io/github-action/issues/430 — committed to AKASHAorg/akasha-core by kenshyx 3 years ago
- fix(api:getPost): cache invalidation (#1482) * chore(): fix cache invalidation * chore(): add cypress gh-action * chore(): adjust cypress gh-action config * chore(): setup node version * ... — committed to AKASHAorg/akasha-core by kenshyx 3 years ago
- fix(api:getPost): cache invalidation (#1482) * chore(): fix cache invalidation * chore(): add cypress gh-action * chore(): adjust cypress gh-action config * chore(): setup node version * ... — committed to AKASHAorg/akasha-core by kenshyx 3 years ago
- Add yarn command to run cypress based on this issue: https://github.com/cypress-io/github-action/issues/430 — committed to opencrvs/opencrvs-core by euanmillar 2 years ago
The problem is here: https://github.com/cypress-io/github-action/blob/0c9eccfb5989bd87ea58b5d8cce9a4f0db1a6d67/index.js#L621
The Cypress action runs the above
index.jsfile as a Node script. It does so using NPM.require.resolve('cypress')throws an error in Yarn 2, because theindex.jsscript is running using NPM, meaning the Plug N Play file (.pnp.cjs) is not loaded.The
index.jsfile ironically looks for Yarn PNP cache files, but it has no way of using files in that cache. 😂To bypass this (for now), you can use
command-prefix: yarrn dlxto pass the defaultcypress runcommand through Yarn to find it through PNP. The code path forcommand-prefixdoes not userequire.resolve, but this feels like coincidence so I’d ask the repo owners still address this.I believe to fix this formally, the GitHub action needs to load the
.pnp.cjsfile before or during executingindex.js.Again, for easy access:
Unblocking yourself
command-prefix: yarn dlxto the action’swith.Notes for repository owners
dist/index.jsfile with Yarn’s PNP file (.pnp.cjs) so thatrequire.resolvefinds PNP modules likecypress.I have this same issue. I don’t run the install command in the
cypress-io/github-action@v2, but in a previous workflow run step:run: yarn install --immutable --immutable-cacheand then later:
This was working previously with yarn, but this is now yarn “berry” (3.0.2).
I am using PnP and a Zero-Installs Yarn setup.
@saseungmin
Please check out Yarn Plug’n’Play and see if it meets your needs. This is new functionality contributed by @PilotConway.
Cypress v10 + Cypress GitHub Action v4 + Yarn v3
Sorry I’m late to upgrading to v4. I managed this dirty workaround:
Before running the
cypress-io/github-action, run the following:yarn installyarn run cypress:pnpIn your
package.json, create the script"cypres:pnp": "node ./scripts/cypress-pnp.cjs".Create the file
./scripts/cypress-pnp.cjs. If you are using Yarn workspaces, create it in the workspace that’s runningcypress.(The only difference between the two is the
../../before.pnp.cjsfor workspaces.)For the
cypress-io/github-action:with.projectfor a workspace, move it towith.working-directory.with.installtofalse. Removewith.install-commandsince we installed in a previous step.with.command-prefixset toyarn dlx.If time permits this weekend, I’ll package this script up into a Node module to make this easier; but the above copy-paste job should work for now.
Link to proof of concept run where the installation is passing for me.
I’ve had success using:
10.3.0as of writing this)cypress.config.jsinstead ofcypress.json)3.2.1as of writing this)cypress-io/github-action@v3.1.0Note that you will need to explicitly set the path to your Cypress config file, as otherwise the 3.1.0 action still looks for
cypress.json.Example action:
@saseungmin Yes, it worked for me.
command-prefix: yarn dlxcommand-prefix: yarn dlxSame cannot get it to work. A timeout occurs during pipe run:
.yml
@forgo Thank you for your advice! I modified it as you suggested, but it doesn’t work.
I’m using PnP and a Zero-Installs Yarn 3.0.2 setup. Anyway, is it impossible to install using yarn berry in Cypress github-action?
@MikeMcC399 @PilotConway
Thank you for finally solving this issue! 🙇♂️ I checked that it works perfectly.
Has anybody got this to work with
Cypress 10,Yarn 3, andcypress-io/github-action v4?I can get it working with
Cypress 10.8.0,Yarn 3.2.3, andcypress-io/github-action v3.1.0. But I would like to instead usecypress-io/github-action v4.I was really stuck and that saved me so much time, thanks @CharlesStover ! 🥇
@CharlesStover Awesome!!👏 thanks you!👍