关于自动化部署:gitea和golang组合实现hook自动化部署代码

7次阅读

共计 734 个字符,预计需要花费 2 分钟才能阅读完成。

gitea 和 golang 组合实现 hook 自动化部署代码

背景

目前 git 代码仓库 develop 分支的代码要常常更新到测试服务器,应用传统的 FTP 上传代码太费劲,应用 git pull 手动拉取分支,也不够释怀。当初应用 git 中的 hook 来进行自动化部署代码。

思路

git 服务 &hook 配置

git 服务应用的是 gitea。其中的 hook 配置如下

ps: 没用 gitlab 切实是因为它内存占用太大

golang gin 实现的 web 服务

用到两个外围类库

  1. go-sh 执行 Linux 命令应用 go-sh
  2. go-simplejson 疾速获取 json 中的数据 go-simplejson

外围代码赏析

res := c.Request.Body
fmt.Println("hook 后果", res)
bodydata, err := ioutil.ReadAll(res)
if err != nil {fmt.Println(err)
}
j, err := simplejson.NewJson(bodydata)
if err != nil {fmt.Printf("err", err)
}
repository, err := j.Get("repository").Get("full_name").String()
if err != nil {fmt.Printf("err", err)
}
fmt.Println("辨认到的仓库是", repository)
clone_url, err := j.Get("repository").Get("clone_url").String()
if err != nil {fmt.Printf("err", err)
}
fmt.Println("辨认到的 clone_url 是", clone_url)

残缺代码,点击拜访 github 仓库, 请 star :)

正文完
 0