github Auto-Deployment

2015-09-08 14:41

最近在使用github组织私有库做团队协作工具,使用过后再加上仔细研究,发生真的挺屌的。

尤其github这个开放性,带来的持续集成能成,就有点像IFTTT,一切皆有可能。

这篇先讲github代码更新后,怎么自动在自己服务器上完成布暑

github代码更新后自动署有两个办法

都是利用github的webhook功能。

  • 一个是利用webhook发一个post到自己服务器上,自己写脚本来pull代码,完成布署。
  • 一个是直接用户github提供的Add GitHub Auto-Deployment service功能。

Git webhook agent for server auto-deployment

利用webhooks有个好处,就是可以直接对组织或者针对某一个库做触。webhooks其实就是个触发机制,当你的组织或者你的库有任何风吹草动的时候,webhooks向你配置的指定URL发一个http POST请求。里面有详细描述告诉服务端github这边发生了什么,详细查看webhooks文档 。文档里面清楚的讲明白事件有哪些,什么样的事件传给你什么样描述。组织的webhooks又能干什么。

那么就快乐的开始吧,先在github的组织或者库上,点setting,选中webhooks and service

接着在cloudenergy.me的服务上,写上一个auto-deployment的服务,样例可以参考hookagent

Add GitHub Auto-Deployment service

不研究不知道,仔细一研究,发现github其实直接集成第三方的自动布署服务。这个Auto-Deployment service由atmos提供的GitHub Auto-Deployment。这个文档有讲atmos的workflow是怎么实现的。

这个更简单了,在库首页点setting,选中webhooks and service (这个只支持库,不支持组织,因为是代码自动布署)

然后把Deployment所需要的参数都一一填写好。在配置Add GitHub Auto-Deployment service时有完整的要求。