jenkisn 简单的 参数化构建

jenkisn 简单的 参数化构建

实现测试环境的前端和后端的更新、回滚、以及上传线上服务器的功能
需要插件有:Git Parameter Plug-in Active Choices Plug-in
Git Parameter Plug-in:实现自动获取git的所有分支信息,在构建前手动选择分支构建

Active Choices Plug-in:自定义一些变量(groovy脚本),在构建前使用选择相应的选择来控制整个构建过程,如选择发送到哪个服务器,目标是构建还是回滚等

效果如下图

在这里插入图片描述

一、简单jenkisn job

一个简单的java程序的构建由三部分构成,代码、构建、部署

代码

在这里插入图片描述

构建

在这里插入图片描述

部署

在这里插入图片描述

以上三个步骤实现了 拉取git代码、构建成jar包、上传到服务器上并执行自定义的重启脚本 三个简单功能,完成了一个服务的升级操作。
但是一般工作中需要额外的需求。比如备份上一个版本的jar包、回滚上一个版本,这些功能最简单的方式就是通过shell脚本来解决。本文的操作依然是最简单的shell脚本,只是尝试使用参数化构建来较少job的数目,让一个job拥有多种功能
下载安装插件略

1.配置选择git分支功能

定义变量

在通用(general)中选择 勾选该选项
在这里插入图片描述

添加参数 选择Git Pramameter,

说明:name,定义变量名称,之后可以用$变量名 来调用

​ Parameter,一般选branch

​ default value: 构建不选择时,默认 branch=填写的默认值

在这里插入图片描述

使用变量:

在这里插入图片描述

完成后,构建按钮就会出现选择框

在这里插入图片描述

这样git就会根据选择来构建不同分支的代码

2.配置功能的参数化构建

使用的的groovy语法很简单

return [“部署”,“回滚”] 这句代码的效果就是
在这里插入图片描述

在刚刚的git parameter 下添加参数,选择Active Choices Parameter (主动选择参数)

name填写为mode ,

勾选上groovy script,内容填写return [“部署”,“回滚”]

这就完成了一个选择框的设计,根据鼠标选择,$mode的值就随之变换。

到这一步完成了变量的定义,接下来就是如何使用变量

因为部署和回滚的shell脚本是不同的,那么有两种方式来实现

原来的部署shell

在这里插入图片描述

回滚shell

在这里插入图片描述

第一种就是简单的判断mode的值

if [[$mode == "deploy"]];then

	部署shell

elif [[$mode == "rollback"]];then

	回滚shell

fi

这种适用于同一个服务器根据需要执行不同的脚本

如果服务器地址不一样或者不适合在一个脚本里呢,jenkisn 的 send build artifacts over ssh就提供了参数选择功能

点击服务地址下面的高级按钮

在这里插入图片描述

里面有一个label选项,填入 deploy

在这里插入图片描述

新增一个ssh server,label填入 rollback

在这里插入图片描述

最下面还有一个高级

在这里插入图片描述

在这个里面勾选并填入刚刚的变量mode

在这里插入图片描述

这就完成了参数选择的功能,这两个构建后动作一个标签是deploy,另一个标签是rollback,构建时选择mode为deploy或者rollback,Jenkins就会自动选择匹配的任务来执行

验证 ,保存配置后点击构建时,选择branch和mode,开始构建

在这里插入图片描述

查看控制台窗口,最后就会显示

......

SSH: Skipping [测试环境-10.0.0.114] - Label [deploy] does not match expression [rollback]
SSH: Publishing to  [测试环境-10.0.0.114] - Label [deploy] matches expression [deploy]
......


这就是最简单的一个参数化构建,如果遇见情况比较复杂,需要多个变量呢,如果选择mode=deploy,服务器=10.0.0.114,那么就可以使用反应参数来协助

在原来的基础上添加参数,这次选择Active Chioces Reactive Parameter

区别:

Active Choices Parameter (主动选择参数)

Active Choices Reactive Parameter (主动选择反应参数)

reactive
英 [riˈæktɪv]   美 [riˈæktɪv]  
adj.
反应的;有反应的;回应的;能起化学反应的;易反应的

该模块的功能是根据之前定义的变量mode来改变自己属性

示例:

设置name 为 action

groovy script:

A = ["test"]
B = ["rollback_test"]
if(mode.equals("deploy")){
return A
}  else if(mode.equals("rollback")){
return B
}

简单的判断,如果mode=deploy,则active = test,这就实现了变量的联动反应

多个选择构建

A=["test-deploy"]
B=["test-rollback"]
C=["release-deploy"]
D=["release-rollback"]

if(hostname.equals("test")){
    if(mode.equals("deploy")){
        return A
    }else if(mode.equals("rollback")){
        return B
    }
}else if (hostname.equals("release")){
    if(mode.equals("deploy")){
        return C
    }else if(mode.equals("rollback")){
        return D
    }
}

之后在对应返回值来添加不同的【构建后操作】,就可以实现多个参数构建。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值