setup-node icon indicating copy to clipboard operation
setup-node copied to clipboard

npm ci hangs in workflow for certain versions of node

Open lamontadams opened this issue 1 year ago • 3 comments

Description: For certain versions of node, npm ci hangs until github kills the workflow (about 6 hours).

Failing versions:

  • 18
  • 21

Working versions:

  • 16
  • 18.5

npm ci runs successfully for the same package.json locally on all of the above identified failing versions.

Action version: Currently 4.0.2, observed same behavior with version 3 and 2.

Platform:

  • [x] Ubuntu
  • [ ] macOS
  • [ ] Windows

Runner type:

  • [x] Hosted
  • [ ] Self-hosted

Tools version: npm package manager, failure noted with node version 18 and 21.

Repro steps:
Workflow yaml - this uses v3 of the action but as stated above, I have seen this issue with versions 2 and 4.02 (which I understand to be the current latest):

jobs:
  build_and_push:
    runs-on: ubuntu-latest
    environment: qa
    steps:
      - name: Checkout code
        uses: actions/checkout@v3

      - name: Set up Node.js
        uses: actions/setup-node@v3
        with:
          node-version: '21'
          scope: '@recurate'
          registry-url: 'https://npm.pkg.github.com'

      - name: Install Dependencies and Build
        env:
          NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          NODE_ENV: qa
        run: |
          npm ci
          npm run build
          

Expected behavior: npm ci executes correctly

Actual behavior: npm ci outputs some (sadly expected) warnings and hangs until the workflow execution is terminated.

Current runner version: '2.317.0'
Operating System
Runner Image
Runner Image Provisioner
GITHUB_TOKEN Permissions
Secret source: Actions
Prepare workflow directory
Prepare all required actions
Getting action download info
Download action repository 'actions/checkout@v3' (SHA:f43a0e5ff2bd294095638e18286ca9a3d1956744)
Download action repository 'actions/setup-node@v3' (SHA:1a4442cacd436585916779262731d5b162bc6ec7)
Complete job name: build_and_push
3s
Run actions/checkout@v3
Syncing repository: recurate/core-admin-dashboard
Getting Git version info
Temporarily overriding HOME='/home/runner/work/_temp/30272686-482e-40ce-bf14-1823932ef51f' before making global git config changes
Adding repository directory to the temporary git global config as a safe directory
/usr/bin/git config --global --add safe.directory /home/runner/work/core-admin-dashboard/core-admin-dashboard
Deleting the contents of '/home/runner/work/core-admin-dashboard/core-admin-dashboard'
Initializing the repository
Disabling automatic garbage collection
Setting up auth
Fetching the repository
Determining the checkout info
Checking out the ref
/usr/bin/git log -1 --format='%H'
'd916c5006fee2adde84426194bd0269bb960fe82'
5s
Run actions/setup-node@v3
Attempting to download 21...
Not found in manifest. Falling back to download directly from Node
Acquiring 21.7.3 - x64 from https://nodejs.org/dist/v21.7.3/node-v21.7.3-linux-x64.tar.gz
Extracting ...
/usr/bin/tar xz --strip 1 --warning=no-unknown-keyword -C /home/runner/work/_temp/88413323-87b7-44f9-8105-55eb929b8002 -f /home/runner/work/_temp/b355c15b-f014-46d6-abb3-02247f2872dc
Adding to the cache ...
Done
Environment details
  node: v21.7.3
  npm: 10.5.0
  yarn: 1.22.22
  
  Run 
  npm ci
  npm run build
  shell: /usr/bin/bash -e {0}
  env:
    NPM_CONFIG_USERCONFIG: /home/runner/work/_temp/.npmrc
    NODE_AUTH_TOKEN: ***
    RECURATE_NPM_TOKEN: ***
    GITHUB_TOKEN: ***
    NODE_ENV: qa
  
npm WARN ERESOLVE overriding peer dependency
npm WARN While resolving: [email protected]
npm WARN Found: [email protected]
npm WARN node_modules/react
npm WARN   react@"^17.0.2" from the root project
npm WARN   40 more (@emotion/react, @emotion/styled, ...)
npm WARN 
npm WARN Could not resolve dependency:
npm WARN peer react@"^0.14.0 || ^15.0.0 || ^16.0.0" from [email protected]
npm WARN node_modules/react-form-validator-core/node_modules/create-react-context
npm WARN   create-react-context@"^0.3.0" from [email protected]
npm WARN   node_modules/react-form-validator-core
npm WARN 
npm WARN Conflicting peer dependency: [email protected]
npm WARN node_modules/react
npm WARN   peer react@"^0.14.0 || ^15.0.0 || ^16.0.0" from [email protected]
npm WARN   node_modules/react-form-validator-core/node_modules/create-react-context
npm WARN     create-react-context@"^0.3.0" from [email protected]
npm WARN     node_modules/react-form-validator-core

lamontadams avatar Jun 28 '24 16:06 lamontadams

Hello @lamontadams Thank you for creating this issue. We will investigate it and get back to you as soon as we have some feedback.

HarithaVattikuti avatar Jul 01 '24 17:07 HarithaVattikuti

Hello @lamontadams, Thank you once again for creating this issue, we have tried to reproduce the issue but the workflow run is successful within few seconds without any hang and we are unable to see the warning for Node.js versions 21 and 18 for v4. Please find the below screenshots for reference. The warning messages indicate that there is a peer dependency conflict with the react version. This is not an error but a warning that can be resolved by adjusting dependencies.

Image

Image

Image

To resolve this issue, you can use --legacy-peer-deps flag with npm ci to install dependencies ignoring peer dependency conflicts:

Updated Workflow Configuration:

 jobs:
  build_and_push:
  runs-on: ubuntu-latest
  environment: qa
  steps:
    - name: Checkout code
      uses: actions/checkout@v3

    - name: Set up Node.js
      uses: actions/setup-node@v3
      with:
        node-version: '21'
        scope: '@recurate'
        registry-url: 'https://npm.pkg.github.com'

    - name: Install Dependencies and Build
      env:
        NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        NODE_ENV: qa
      run: |
        npm ci --legacy-peer-deps
        npm run build

This should bypass the peer dependency conflict warnings and proceed with the installation and build process.

Please update us if this workaround fix your issue.

aparnajyothi-y avatar Jul 19 '24 11:07 aparnajyothi-y

Thanks! We will give this a try and let you know what happens.

On Fri, Jul 19, 2024 at 7:57 AM aparnajyothi-y @.***> wrote:

Hello @lamontadams https://github.com/lamontadams, Thank you once again for creating this issue, we have tried to reproduce the issue but the workflow run is successful within few seconds without any hang and we are unable to see the warning for Node.js versions 21 and 18 for v4. Please find the below screenshots for reference. The warning messages indicate that there is a peer dependency conflict with the react version. This is not an error but a warning that can be resolved by adjusting dependencies.

image.png (view on web) https://github.com/user-attachments/assets/fc72a482-7b98-4aad-bd26-ea61e2fcd55d

image.png (view on web) https://github.com/user-attachments/assets/d3c62743-6884-498d-82d2-3c4fb9091cbc

image.png (view on web) https://github.com/user-attachments/assets/fb5ce977-8d82-4b67-9036-ee83dc6e60a2

To resolve this issue, you can use --legacy-peer-deps flag with npm ci to install dependencies ignoring peer dependency conflicts:

Updated Workflow Configuration jobs: build_and_push: runs-on: ubuntu-latest environment: qa steps:

  • name: Checkout code uses: @.***

    • name: Set up Node.js uses: @.*** with: node-version: '21' scope: @.***' registry-url: 'https://npm.pkg.github.com'

    • name: Install Dependencies and Build env: NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} NODE_ENV: qa run: | npm ci --legacy-peer-deps npm run build

This should bypass the peer dependency conflict warnings and proceed with the installation and build process.

Please update us if this workaround fix your issue.

— Reply to this email directly, view it on GitHub https://github.com/actions/setup-node/issues/1097#issuecomment-2238985002, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAJEQA6NKBTZLPHVUYTF6ADZND5LHAVCNFSM6AAAAABKCFNFP2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMZYHE4DKMBQGI . You are receiving this because you were mentioned.Message ID: @.***>

lamontadams avatar Jul 19 '24 13:07 lamontadams

Hello @lamontadams, Please check and update the workaround fix the issue.

aparnajyothi-y avatar Jul 31 '24 14:07 aparnajyothi-y

Hi there. I have heard that it does indeed work. Thank you!

lamontadams avatar Jul 31 '24 15:07 lamontadams

Screenshot 2024-08-05 at 14 45 38 I have been seeing this issue recently, sometimes it works and sometimes it gets stuff trying again until I cancel the action.

Update: ignore this, we were still using v1, updating to v4 fixed it

samuelholyhead avatar Aug 05 '24 13:08 samuelholyhead

Hello Everyone, Thank you for confirming that issue resolved and v4 is working fine hence proceeding to close this issue.

aparnajyothi-y avatar Aug 06 '24 05:08 aparnajyothi-y