SSH и выполнить команду для CI - PullRequest
0 голосов
/ 16 января 2019

У меня есть конфигурация CircleCI, в конце которой есть сценарий развертывания. Команда должна войти по SSH на сервер, перейти в каталог и выполнить сценарий NPM. Это выглядит так:

ssh -o StrictHostKeyChecking=no ubuntu@xx.xx.xx.xx "cd /var/www/example.com && npm run restart_qa"

Это выдает следующую ошибку:

bash: npm: command not found

Это означает, что NPM не установлен на сервере, но он есть. Чтобы проверить это, если я запускаю команды отдельно, они работают. например,

ssh -o StrictHostKeyChecking=no ubuntu@xx.xx.xx.xx
cd /var/www/example.com
npm run restart_qa

Так в чем здесь проблема?

1 Ответ

0 голосов
/ 16 января 2019

Оказывается, это как-то связано с установленным путем npm и узла. Я использовал NVM для установки обоих, чтобы они не были в том месте, где ожидал скрипт оболочки. Чтобы решить эту проблему, я сделал следующее:

sudo ln -s /home/ubuntu/.nvm/versions/node/v10.13.0/bin/npm /usr/local/bin/npm
sudo ln -s /home/ubuntu/.nvm/versions/node/v10.13.0/bin/node /usr/local/bin/node
...