之前把公司的版本管理从svn换到了gitlab,用的各种舒适,但是,我的上线属于手动上线,先在本地git push到主分支,再到线上环境去运行git pull命令把代码拉取下来。
如何能做到自动部署呢?
答案是webhook。
有关如何配置webhook,推荐文章https://www.jianshu.com/p/00bc0323e83f。
那么webhook是如何做到自动部署的呢?
我的理解是这样的,配置webhook时可以指定触发webhook的事件,我配置的事件是push事件,即当有push事件时,就会调取webhook。
如上,当有push事件时,就会调用服务器上的webhook.php,并post方式将安全令牌推送给php文件,这样,服务器就可以根据安全令牌来验证访问请求是否合法,如果合法,就执行pull命令。这样,你就不用自己登陆服务器执行git pull命令了,钩子会自动帮你执行。
其实,我们只需要做几件事情即可。
1)线上服务器配置钩子域名
2)编写钩子程序
3)测试
就这么简单。
1、配置钩子域名
我的环境用的lnmp平台,钩子访问地址