zoukankan      html  css  js  c++  java
  • 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、这种方式后续还能做更多的扩展。 

  • 相关阅读:
    Array
    StringBuffer
    String
    字节流
    正则表达式
    coursera 机器学习 linear regression 线性回归的小项目
    立个FLAG!
    排序题目练习(Ignatius and the Pincess IV、排序、Clock、排名)
    codeforces 1006
    codeforces
  • 原文地址:https://www.cnblogs.com/bfyang5130/p/13278564.html
Copyright © 2011-2022 走看看