pm2:如果在travis-ci中使用,则找不到命令

时间:2019-03-05 07:04:21

标签: node.js travis-ci pm2

我在外壳中使用pm2,它工作正常。但是,当我将其添加到.travis.yml时,它会向我显示

$ pm2 restart index.js
No command 'pm2' found

pm2在/usr/local/bin中,当我回显$ PATH时,它包含路径/usr/local/bin。我对此一无所知。

.travis.yml

language: node_js
node_js:
- 8.9.1
branchs:
  only:
  - master
cache:
  apt: true
  directories:
  - node_modules
install:
- git pull
- rm -f package-lock.json && npm install
script:
- echo $PATH
- pm2 restart index.js
after_success:
- chmod 600 ~/.ssh/id_rsa
before_install:
- openssl aes-256-cbc -K $encrypted_a46a360c8512_key -iv $encrypted_a46a360c8512_iv
  -in id_rsa.enc -out ~/.ssh/id_rsa -d

1 个答案:

答案 0 :(得分:0)

我认为您已经将构建容器与要运行最终应用程序的实际服务器混淆了。

Travis构建项目inside a VM/Container,该项目在Travis构建结束时结束。 PM2应该在托管该应用程序的实际Web服务器上安装并运行。

因此,从Travis ci您可能应该:

  1. 通过ssh将最新的项目文件上传到实际服务器。
  2. 通过ssh在实际服务器上运行pm2。

以下是这些内容:https://oncletom.io/2016/travis-ssh-deploy/