如何在sls部署期间安装私有npm github软件包

问题描述 投票:1回答:1

我的CI / CD无服务器部署失败,因为它无法安装私有npm软件包。

错误----------------------------------------------- ---

npm安装失败,代码为1npm ERR!代码ENOENTnpm ERR! syscall生成gitnpm ERR!路径gitnpm ERR! errno ENOENTnpm ERR! enoent执行时出错:npm ERR! enoent未定义ls-remote -h -t ssh://[email protected]/private-org/private-repo.gitnpm ERR!天生的npm ERR!天生的npm ERR! enoent生成git ENOENTnpm ERR! enoent这与npm无法找到文件有关。npm ERR! enoent

npm ERR!可以在以下位置找到此运行的完整日志:npm ERR! /github/home/.npm/_logs/2020-05-28T13_30_18_595Z-debug.log

  at ChildProcess.child.on.exitCode (/github/workspace/node_modules/serverless-webpack/lib/utils.js:91:16)
  at ChildProcess.emit (events.js:198:13)
  at ChildProcess.EventEmitter.emit (domain.js:448:20)
  at maybeClose (internal/child_process.js:982:16)
  at Process.ChildProcess._handle.onexit (internal/child_process.js:259:5)

来自上一个事件:在PluginManager.invoke(/usr/local/lib/node_modules/serverless/lib/classes/PluginManager.js:505:22)在PluginManager.spawn(/usr/local/lib/node_modules/serverless/lib/classes/PluginManager.js:525:17)在ServerlessWebpack.BbPromise.bind.then.then.then(/github/workspace/node_modules/serverless-webpack/index.js:91:53)在runCallback(timers.js:705:18)在tryOnImmediate(timers.js:676:5)在processImmediate(timers.js:658:5)在process.topLevelDomainCallback(domain.js:126:23)

获得支持--------------------------------------------文件:docs.serverless.com错误:github.com/serverless/serverless/issues问题:forum.serverless.com您的环境信息---------------------------作业系统:linux节点版本:10.20.1框架版本:1.54.0插件版本:3.6.12SDK版本:2.3.1组件核心版本:1.1.2组件CLI版本:1.4.0

  deploy:
    name: deploy
    needs: test
    if: startsWith(github.ref, 'refs/tags/')
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@master
    - uses: actions/setup-node@v1
      with:
        node-version: '12.x'
    - uses: webfactory/[email protected]
      with:
        ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }} 
    - name: npm install
      run: npm install 
    - name: serverless deploy
      uses: serverless/github-action@master
      with:
        args: deploy
      env:
        AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
        AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
        SLS_DEBUG: true

通常,我使用webfactory/[email protected]解决此问题,因此第一个npm安装在这里工作正常,并且可以使用提供的SSH密钥设法安装私有软件包。

但是,在无服务器部署期间,出现了以上错误,它无法安装私有npm软件包。有没有一种方法可以指定SSH密钥供无服务器操作使用?

serverless-framework github-actions
1个回答
0
投票

我提出了一个解决方案,但这意味着我不得不放弃无服务器操作。

  deploy:
    name: deploy
    needs: test
    if: startsWith(github.ref, 'refs/tags/')
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@master
    - uses: actions/setup-node@v1
      with:
        node-version: '12.x'
    - uses: webfactory/[email protected]
      with:
        ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
    - name: deploy
      run: |    
        npm i -g serverless
        npm install 
        serverless config credentials --provider aws --key $AWS_ACCESS_KEY_ID --secret $AWS_SECRET_ACCESS_KEY
        sls deploy
      env:
        AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
        AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
© www.soinside.com 2019 - 2024. All rights reserved.