由于每次构建的时候指定的 SVN 路径都不同,如果不使用参数化构建则每次都需要修改配置中的 SVN 路径,不但不安全也容易出现错误。
在 SVN 中引用参数
另外,如果需要自动拉取 SVN 的 tag 或 git 的 branch 可以使用 "List Subversion tags(and more)" 和 "Git Parameter Plug-In" 这两个插件,将会自动在所填的 SVN/git 地址下列出子目录,有兴趣的朋友可以自己研究一下。
- 当执行构建时,将会弹出页面等待用户输入参数值完成构建
以下将通过参数化构建将其合并为一个 Tomcat_check 的 job。
合并前:
合并后:
勾选配置参数化构建过程(选择 "Chice" 并定义参数名为 Module,Choices 的值根据自己的情况填写需要的选项)
构建过程(执行 check.sh 脚本并引用参数
)
- Module
触发邮件步骤略(将会在邮件插件中详细介绍)
以下附上检测 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 \<h3\> `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 \<br\> \<a href=$1\>$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 \<br\> \<a href=$1\>$IP\<\/a\> ++ \<font color='Red'\>Error\<\/font\> >> $file
- FAILED=0
- shift
- continue
- fi
- done
- }
- 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/ <font color='Orange'>$Maxver<\/font>/g" $file
- #如果是旧版本号则改版本号字体显示为绿色
- sed -i "s/$Minver/ <font color='SeaGreen'>$Minver<\/font>/g" $file
由上面可见检测后将自动触发邮件通知,邮件内容如下:
来源: http://www.bubuko.com/infodetail-1988680.html