git-golang 半自动布署或者拉取测试分支
1、最近在看gitblit的自动布署方案,都 说要到根目录弄一个XXX文件,本来就对gitblit没有很大的好感,这样一来感觉就更头大了。
2、查看其他的自动布署,无非都是向指定的服务器发一个指令,然后让指定服务器拉取代码,或者做对应的操作。
3、于是想到了提供一个url地址,当需要更新布署的时候访问一下这个地址就能执行对应的操作。
4、运用GO语言,使用gin框架很快搭建起来。使用go cammand的操作来执行对应的XX.sh文件进行处理
5、贴一个关键代码
func(obj *GitCmdController)Webhook(ctx *gin.Context){
checkErr,reString:=tools.CheckTime("webhook")
if checkErr!=nil{
vo.OutPut(ctx,reString)
}else {
command := "./webhook.sh"
cmd := exec.Command("/bin/bash", "-c", command)
output, err := cmd.Output()
if err != nil {
vo.OutPut(ctx, err.Error())
} else {
vo.OutPut(ctx, string(output))
}
}
}
定义 一个路由-》检测是不是频繁更新-》执行脚本-》完成任务
6、要点:返回126错误是执行的sh文件的权限加打开chmod +x xxx.sh 在window下的xxx.sh文件要处理为unix文件,否则126还是一直126 ,vi xxx.sh :set ff=unix就可以了
7、这种方式后续还能做更多的扩展。

浙公网安备 33010602011771号