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、这种方式后续还能做更多的扩展。 

posted @ 2020-07-10 12:02  你好啊,再见了  阅读(467)  评论(0编辑  收藏  举报