服务器(三):利用github的webhooks实现自动部署

实现自动部署的关键就是利用github的webhooks,咱们在github创建一个项目以后,在项目主页点击Settings,看到Webhooks点击打开能够添加一个连接,这里的意思是,github能够帮你监听一些项目发生的事件,当指定事件发生时,会向你指定的连接发一个post请求,而后你就能够知道本身的哪一个项目发生了什么事情,再去作一些具体的操做,那么这时就能够利用shell脚本实现项目自动pull而且从新部署,最后实现的效果就是在本地push代码,一段时间事后,效果就展现在了网站上面。
自动部署的工具备不少,可是如今我们不使用工具,本身造一个简单的轮子,这个轮子只实现一个webhooks接口,配合shell脚本,而后将另外一个项目从新启动。
首先是webhooks要点,使用express-generate生成一个项目结构,在里面添加一个post接口,这个接口只须要作一件事情,调用事先写好的shell脚本,shell脚本里面要作两件事情,一个是将当前正在运行的项目kill掉,而后拉新代码将项目从新启动,node执行shell命令的模块是
child_process。
下面看一下shell脚本里面须要的简要几步:
#!/bin/sh export APP_PATH=/usr/share/nginx/test cd $APP_PATH && git checkout master cd $APP_PATH && git pull origin master cd $APP_PATH && npm i data=`ps -ef | grep "node test" | awk '{print $2}'` for i in $data; do kill $i; done cd $APP_PATH && node test.js > log &
首先是拉取新代码,接着是我们须要从新部署的项目的进程号,而后kill掉,接着启动便可。
若是项目须要在域名中被访问,那么就须要配置nginx代理 和子域名解析。
相关文章
相关标签/搜索