以下命令,均是在Debian系统环境下,若是其他系统,使用对应系统命令即可
安装node.js版本8.x
1 | sudo curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash - |
我这里新建了一个目录作为自动部署服务的根目录,并进入该目录
1 | mkdir /home/webhook; |
在当前文件夹下,新建一个deploy.js
作为监听程序,内容如下
以下文件已上传gist 可使用命令
1 sudo curl -O https://gist.githubusercontent.com/oryxtc/b0bb50c210e25207dc67132d778714b6/raw/0b75f714064e232594fbaaf0f753bc9bf25d43df/deploy.js
1 | var http = require('http') |
在当前文件夹下新建一个deploy.sh
脚本执行自动拉取,内容如下
以下文件已上传gist 可使用命令
1 sudo curl -O https://gist.githubusercontent.com/oryxtc/3850a573f0b6a0e7eb783658863d08cb/raw/0750ad8eb8c1feed24d07fb0f1f11a7baa07a212/deploy.sh
1 | WEB_NAME="$1" |
在当前文件夹下新建一个deploy_hexo.sh
脚本执行自动拉取,以及hexo部署和提交.(根据自己情况 修改路径等)
以下文件已上传gist 可使用命令
1 sudo sudo curl -O https://gist.githubusercontent.com/oryxtc/eac1ec324ed295cddcae7c6767bc09f8/raw/09f97c4978e4336a139894d6a99b7d2d4513553b/deploy_hexo.sh
1 | WEB_NAME="$1" |
这里要注意,如果是在Windows环境下编写文件,换行符会跟linux不一样!要用编辑器转换成UNIX格式
这里需要用到node.js的中间件github-webhook-handler
,安装到当前目录下
1 | sudo npm install github-webhook-handler |
为了自动部署能后台自动运行,并且断线自动重运行,这里使用pm2
组件
1 | sudo npm install -g pm2 |
如果出现
/usr/bin/pm2 -> /usr/lib/node_modules/pm2/bin/pm2
使用软连接ln -s /usr/lib/node_modules/pm2/bin/pm2 /usr/bin/pm2
用pm2
运行该进程
1 | sudo pm2 start deploy.js --name auto-deploy # 命名进程 |