版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/devilcry13/article/details/85703630
需求:脚本读取文本文件中的构建信息,打印信息,并生成json格式字符串,json字符串用于robot framework调用Jenkins打包用(需要job_name,job_tag及job_type)
脚本如下:
#!/usr/bin/sh
### 输入文件格式如下:
# xxx需求--接口改动 http://svn.xxx.com/xxx/refund_back/branches/3.0.8/
# xxx需求--接口改动 http://svn.xxx.com/xxx/refund_core/branches/3.2.7/
# xxx需求--接口改动 http://svn.xxx.com/xxx/refund_server/branches/2.6.1/
# xxx需求--接口改动 http://svn.xxx.com/xxx/refund_facade/branches/2.0.1/
#各模块名数组
MOD=(refund_domain refund_facade refund_core refund_server refund_back refund_manager_core refund_manager_app)
SPLINE="-------------------------------------------------------------"
#脚本用法,并抓取文件内容到NCSTR变量中
[ $# -lt 1 ] && echo "Usage: `basename $0` + build_info_file" && exit -1 || INFL=$1 && NCSTR=`cat $INFL| grep "http" | sed -e "s#.*\(http.*/\).*#\1#g" -e '/^$/d'`
#解析NCSTR变量,输出build信息,并生成JSON格式字符串
echo ${SPLINE}
jstr="["
for mod in ${MOD[@]};do
version=`echo $NCSTR|awk -F"${mod}/branches/" '{print $2}'|cut -d'/' -f1`
if [ "X"${version} != "X" ];then
case ${mod} in
refund_domain|refund_facade|refund_core)
#更新代码
#cd /d/ideal_code/${mod}
#url=`svn info | grep -E "^URL: " | sed 's/.*\(http.*branches\/\).*/\1/g'`$version
#svn sw $url
#svn update
job_name="wc_"${mod}"_nexus"
job_type="jar"
;;
refund_server|refund_back)
job_name="wc_"${mod}
job_type="war"
;;
*)
:
;;
esac
job_tag=${version}
jstr=$jstr"{\"job_name\":\"${job_name}\",\"job_tag\":\"${job_tag}\",\"job_type\":\"${job_type}\"},"
echo -e "${job_name}\t${mod}\t${version}"
fi
done
jstr=${jstr%,}
jstr=${jstr}"]"
echo ${SPLINE}
echo ${jstr}
robot framework 打包
shell脚本生成的字符串作为${builds_str}