Jenkins持续集成——参数化构建
发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,一、String Parameter由于每次构建的时候指定的SVN路径都不同,如果不使用参数化构建则每次都需要修改配置中的SVN路径,不但不安全也容易出现错误。将SVN地址设置为字符串参数(strin
千家信息网最后更新 2025年01月24日Jenkins持续集成——参数化构建
一、String Parameter
由于每次构建的时候指定的SVN路径都不同,如果不使用参数化构建则每次都需要修改配置中的SVN路径,不但不安全也容易出现错误。
将SVN地址设置为字符串参数(string parameter),当开始构建的时候将会提示用户输入参数值(即:SVN地址)
在SVN中引用参数
另外,如果需要自动拉取SVN的tag或git的branch可以使用"List Subversion tags(and more)"和"Git Parameter Plug-In"这两个插件,将会自动在所填的SVN/git地址下列出子目录,有兴趣的朋友可以自己研究一下。
当执行构建时,将会弹出页面等待用户输入参数值完成构建
二、Choice
由于之前未对tomcat的状态检测做参数化构建,故每个模块都需要一个对应的job用于检测,最终将会导致所创建的job数量太大,不但增加了工作量,而且也容易出错。
以下将通过参数化构建将其合并为一个Tomcat_check的job。
合并前:
合并后:
勾选配置参数化构建过程(选择"Chice"并定义参数名为Module,Choices的值根据自己的情况填写需要的选项)
构建过程(执行check.sh脚本并引用参数Module
)
触发邮件步骤略(将会在邮件插件中详细介绍)
以下附上检测tomcat的脚本(仅供参考)
Tomcat_check检测脚本
定义check函数用于检测tomcat是否启动正常
functions
#定义失败后重试次数ATTEMPTS=12FAILED=0#定义将会输出版本号的日志(可用于发送邮件)file=$JENKINS_HOME/jobs/$JOB_NAME/builds/$BUILD_NUMBER/check#jenkins构建时生成的日志,用于追加日志输出到jenkins控制台log=$JENKINS_HOME/jobs/$JOB_NAME/builds/$BUILD_NUMBER/logcheck(){ echo \`date` >> $file #当调用check函数带参数时才执行 while [ $# != 0 ] do IP=`echo $1 | awk -F "/" '{print $3}' |awk -F ':' '{print $1}'` ver=`curl -skf -m 1 $1 |grep -i "v" |head -1|dos2unix` curl -skf -m 1 $1 > /dev/null #当curl检测URL返回正常时往$file记录IP和版本号并往jenkins控制台输出"$1 is OK"(shift用于向左移动一位参数) if [ $? -eq 0 ];then echo \
\$IP\<\/a\> ++ $ver >> $file echo $1 is OK! >> $log FAILED=0 shift continue else #当curl检测URL返回异常则等待10秒后重试 FAILED=$(($FAILED + 1)) TIMES=$(($ATTEMPTS - $FAILED + 1)) echo "Waiting for check the web-$1, retrying in 10 seconds for $TIMES times..." >> $log sleep 10 if [ $ATTEMPTS -gt $FAILED ];then continue else echo "Failed to check the web-$1" >> $log fi #若重试指定次数后仍然失败则将版本号记录为ERROR,且字体设为红色 echo \
\$IP\<\/a\> ++ \Error\<\/font\> >> $file FAILED=0 shift continue fi done}
通过脚本调用上面定义的check函数
check.sh
#引入参数用于指定需要检测的模块(即参数化构建中的Module)Module=$1#引用functions中的check函数. /data/ztjy/functionsargs=`cat /data/ztjy/$Module/url`check $args#提取新版本号(相对其他版本而已)Maxver=`awk -F "+" '{print $3}' $file | grep -i v | sort |tail -1`#提取旧版本号Minver=`awk -F "+" '{print $3}' $file | grep -i v | sort |head -1`#如果是新版本号则改版本号字体显示为橙色sed -i "s/$Maxver/ $Maxver<\/font>/g" $file#如果是旧版本号则改版本号字体显示为绿色sed -i "s/$Minver/ $Minver<\/font>/g" $file
执行参数化构建
由上面可见检测后将自动触发邮件通知,邮件内容如下:
参数
检测
版本
邮件
函数
脚本
地址
字体
日志
输出
控制台
插件
时候
模块
次数
用户
路径
过程
控制
输入
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
戴尔服务器增加内存顺序
瑞丽手机软件开发
什么是服务器网卡
通信和网络技术创新研究
数据库迁移有什么技术
安全行业数据库场景
中国根服务器镜像
万宁天气预报软件开发
机房教学管理服务器
服务器端口管理方法
天骏软件开发工作室
网络安全问询
数据库备份用什么技术实现
服务器采购项目立项报告
国开网络安全评估形考答案
十三五网络安全重大工程
北京环建网络技术研究院
网络安全三定是指什么
国网南瑞集团软件开发
数据库表视图
网络安全与家庭教育美篇
河北数据网络技术服务工程
四川华迪实训软件开发怎样
与网络安全有关的标准
公司网络安全服务团队建设
软件开发初级设计
浪潮服务器怎么进管理卡
网络安全征文800字以上
龙源网数据库论文查询
网络安全或网络信息的文章