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=12 FAILED=0 #定义将会输出版本号的日志(可用于发送邮件) file=$JENKINS_HOME/jobs/$JOB_NAME/builds/$BUILD_NUMBER/check #jenkins构建时生成的日志,用于追加日志输出到jenkins控制台 log=$JENKINS_HOME/jobs/$JOB_NAME/builds/$BUILD_NUMBER/log check(){ 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/functions args=`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
执行参数化构建
由上面可见检测后将自动触发邮件通知,邮件内容如下:
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
文章标题:Jenkins持续集成——参数化构建-创新互联
文章转载:http://scjbc.cn/article/icehg.html