Как установить частный пакет npm github во время развертывания sls - PullRequest
1 голос
/ 28 мая 2020

Мое бессерверное развертывание CI / CD завершается ошибкой, потому что не удается установить частный пакет npm.

Ошибка ---------------- ----------------------------------

npm ошибка установки с кодом 1 npm ERR! код ENOENT npm ERR! syscall spawn git npm ERR! путь git npm ERR! errno ENOENT npm ERR! enoent Ошибка при выполнении: npm ERR! enoent undefined ls-remote -h -ts sh: // git@github.com/private-org/private-repo.git npm ERR! enoent npm ERR! enoent npm ERR! enoent spawn git ENOENT npm ERR! enoent Это связано с тем, что npm не может найти файл. npm ОШИБКА! 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 (таймеры. js: 705: 18) в tryOnImmediate (таймеры. js: 676: 5) в processImmediate (таймеры. js: 658: 5) в process.topLevelDomainCallback (domain. js: 126: 23)

Получить поддержку ------------ -------------------------------- Документы: docs.serverless.com Ошибки: github.com/serverless/serverless/issues Проблемы: forum.serverless.com Информация о вашей среде --------------------------- Операционная система: linux Версия узла: 10.20.1 Framework Версия: 1.54.0 Версия плагина: 3.6.12 Версия SDK: 2.3.1 Версия ядра компонентов: 1.1.2 Версия интерфейса командной строки компонентов on: 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/ssh-agent@v0.2.0
      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 / ssh-agent@v0.2.0, поэтому первая установка npm отлично работает здесь, и ей удается установить частный пакет с помощью S * Предоставляется ключ 1051 *.

Однако при бессерверном развертывании я получаю указанную выше ошибку и не могу установить частный пакет npm. Можно ли указать ключ S SH для бессерверного действия?

1 Ответ

0 голосов
/ 29 мая 2020

Я придумал решение, но это означало, что мне пришлось отказаться от бессерверного действия.

  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/ssh-agent@v0.2.0
      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 }}
...