deploy-on-git-push

Git Push自动发布本博客

Posted onCategories技术文章

实践证明任何简单的东西如果不记录下来,不出几个月肯定把自己绕进去。

问题

本博客搭载在一个5美元的Digital Ocean Droplet上, 代码版本管理用的是Bitbucket, 开发环境是我自己的机器。做法和大多数用Wordpress创作的人有点不一样,因为我需要写不小量的代码来支持我这个站的一些在线工具。

过去几个月来我一直的更新过程是

  • 本地开发,测试,代码提交
  • 登录服务器,运行发布脚本,还得输个sudo密码

不能忍啊。不想偷懒的程序员,不是好的程序员。基于这个宇宙真理周末花了点时间实现了本地git push后自动发布到本博客。

解决方案

  1. 在本站建一个正常人猜不到的URL作为Bitbucket的web hook。这个可以通过Wordpress的hook实现,判断是该URL,只做一件事情,新建一个文件做为发布锁。
  2. 用Root身份建一个cronjob,每几分钟运行发布Shell脚本。发布脚本里做几件事情,判断发布锁是否存在,从Bitbucket拉文件,修改文件权限,发送发布结果到Slack频道,当然最后要删除发布锁。
  3. 登录Bitbucket,新建一个web hook,填入上面的URL。

bitbucket-add-web-hook

恩,就这么几个步骤后,现在每次我本地调试完了,想发布到服务器上就一个命令

$ git push origin master

人生苦短,能省五分钟就是延迟了五分钟的生命。三个五分钟,就够我去开一局王者荣耀了。

发表评论

电子邮件地址不会被公开。 必填项已用*标注