rah*_*ver 6 git continuous-integration node.js npm github-actions
我正在尝试通过 ssh 将 nodejs 应用程序从 github 部署到远程 ubuntu 服务器。这是我的 main.yml:
name: Node Github CI
on:
push:
branches:
- master
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Node Js
uses: actions/setup-node@v1
- name: SSH and deploy node app
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.SERVER_IP }}
username: ${{ secrets.USERNAME }}
key: ${{ secrets.SERVER_KEY }}
script: |
service myservice stop
cd leancrm-backend
git pull git://myuser@github.com/mycmp/myapp-backend.git master
npm install
service myservice start
Run Code Online (Sandbox Code Playgroud)
当我运行这个时,我收到这个错误:
======CMD======
service myservice stop
cd myapp-backend
git pull git://myuser@github.com/mycmp/myapp-backend.git master
npm install
service myservice start
======END======
err: fatal: Unable to look up myuser@github.com (port 9418) (Name or service not known)
err: bash: line 3: npm: command not found
==============================================
Run Code Online (Sandbox Code Playgroud)
原因:
服务器节点环境我使用nvm,而nvm不会将节点环境安装在/usr/local/bin/目录下,导致sudo找不到对应的指令,最后创建软连接解决
sudo ln -s "$NVM_DIR/versions/node/$(nvm version)/bin/node" "/usr/local/bin/node"
sudo ln -s "$NVM_DIR/versions/node/$(nvm version)/bin/npm" "/usr/local/bin/npm"
sudo ln -s "$NVM_DIR/versions/node/$(nvm version)/bin/pm2" "/usr/local/bin/pm2"
sudo ln -s "$NVM_DIR/versions/node/$(nvm version)/bin/yarn" "/usr/local/bin/yarn"
Run Code Online (Sandbox Code Playgroud)
你可以测试“sudo npm -v”
小智 7
由于您已连接到您的服务器,我假设您已经在那里拥有 repo,因此您只需要执行 git pull。
您还应该在脚本的开头添加这些行:
export NVM_DIR=~/.nvm
source ~/.nvm/nvm.sh
Run Code Online (Sandbox Code Playgroud)
我的 yml 文件最后看起来像这样:
script: |
git pull
export NVM_DIR=~/.nvm
source ~/.nvm/nvm.sh
npm install
npm run start_server
Run Code Online (Sandbox Code Playgroud)
你的第一步
name: Node Js
uses: actions/setup-node@v1
Run Code Online (Sandbox Code Playgroud)
在 GitHub 构建运行器上设置 Node.js。然而你的第二步......
name: SSH and deploy node app
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.SERVER_IP }}
username: ${{ secrets.USERNAME }}
key: ${{ secrets.SERVER_KEY }}
script: |
service myservice stop
cd leancrm-backend
git pull git://myuser@github.com/mycmp/myapp-backend.git master
npm install
service myservice start
Run Code Online (Sandbox Code Playgroud)
...通过 SSH 连接到您的服务器,然后在那里运行脚本指令。您还尝试在那里查看您的源代码存储库。
您可能想要做的是在 GitHub 构建运行器上查看您的存储库...
- name: Checkout repo
uses: actions/checkout@v2
Run Code Online (Sandbox Code Playgroud)
..然后npm install在那里运行,然后scp输出到您的服务器,最后ssh到该机器并重新启动您的服务。
| 归档时间: |
|
| 查看次数: |
3210 次 |
| 最近记录: |