gitea和golang組合實現hook自動化部署代碼

gitea和golang組合實現hook自動化部署代碼

背景

目前git代碼倉庫develop分支的代碼要常常更新到測試服務器,使用傳統的FTP上傳代碼太費力,使用git pull手動拉取分支,也不夠放心。如今使用git中的hook來進行自動化部署代碼。git

思路

hook 代碼的思路

git服務&hook配置

git服務使用的是gitea。其中的hook配置以下
imageimage
ps:沒用gitlab實在是由於它內存佔用太大github

golang gin實現的web服務

用到兩個核心類庫golang

  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)
相關文章
相關標籤/搜索