# golang 实现自动部署
以及有好的工具jenkins来实现自动部署 为什么还要用golang实现一套?
因为公司服务器太炸了 安装上 jenkins 然后会崩了
怎么在占用极少的资源下实现自动部署呢?那就用golang写一套
其实自动部署 非常简单
![自动部署](https://upload-images.jianshu.io/upload_images/2489344-6991dc458748b7d5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
就是本地 机器提交 -> github -> 当github处理完毕后 请求下我的钩子 -> 然后自动部署工具触发了git pull 这个流程就完毕了
我们现在来看看github会给我们返回什么内容
```
{
"ref": "refs/heads/master",
"before": "b61cd27c0bfe30cbac7a731a6ce22790d9e1f6f7",
"after": "05300bfb10912f370ac74a5cbc2ed2095a60466c",
"repository": {
"id": 208684536,
"node_id": "MDEwOlJlcG9zaXRvcnkyMDg2ODQ1MzY=",
"name": "Cartoon5",
"full_name": "dollarkillerx/Cartoon5",
```
这里主要就是一个ref 这个是 branch
和full_name 这个是 项目的名称
自动部署工具可以更具这个来识别现在改更新那个项目
### 成品
这个我已经写好了
[https://github.com/dollarkillerx/easydevops](https://github.com/dollarkillerx/easydevops)
大家可以看下源码学习一下