jenkins用GWT插件实现多分支拉取

jenkins用GWT插件实现多分支拉取

   小白     2021年4月21日 08:56     1499    

1、流程

1.jpg

1)客户端提交代码给Gogs服务器,触发web钩子;

2Gogs服务器通过POST请求将订阅事件信息发送指定的Jenkins地址,通过推送内容中的"ref"的值来判断更新的服务器;

3Jenkins服务器收到请求后,会启动构建的触发器;

4)然后Jenkins服务器使用脚本通过SSH登录到指定的服务器,通过git pull将代码拉下来。

 

2、安装和配置

1)安装和配置webhook

如何安装jenkinsgogs软件和如何配置gogsweb钩子这里不再赘述。

参考:

https://www.yunweigonghui.com/column/Jenkins/348/

 

2)配置jenkins

<1>勾选GWT插件

2.png

<2>PSOT content parameters中添加一个参数项,这个参数项的意思就是获取POST过来的JSON中的ref字段的值。

3.png

<3>设置一个token,用来标识,并且在gogs中的webhook中也需要配置这个参数。

4.png

<4>勾选上print psot contentprint contributed variables

这样在日志中就会将JSON的内容和获取的ref的值打印出来。

Optional filter

添加^S*refs/heads/master|refs/heads/dev$用来进行参数过滤。

5.png

<5>通过脚本来进行最后的发布

6.png

这里需要配置jenkins服务器和两个web服务器的证书登录,这里不再赘述。

这里脚本的执行用户是jenkins所以不要忘了,是配置jenkins用户和两个web服务器的证书登录。

脚本的内容

#!/bin/bash

 

dev="refs/heads/dev"

master="refs/heads/master"

 

if [ ${1} = ${master} ];then

        ip="192.168.0.219"

        path="/usr/local/master/big_pro"

fi

 

if [ ${1} = ${dev} ];then

        ip="192.168.0.221"

        path="/usr/local/dev/big_pro"

fi

 

ssh root@${ip} << cmdoff

        cd ${path}

        git pull

cmdoff

脚本的大概意思就是,首先判断命令行参数是哪个分支,然后配置上对应的ip和项目路径的参数,然后使用ssh登录到指定的服务器,进入对应项目,然后拉取代码。

这里有个必要的条件就是一定要免密码的拉取代码。对应方法不再赘述。

 

3、测试

提交代码后,从控制台看输出

7.png

8.png

 


文章评论

1

其他文章