需求:腳本讀取文本檔案中的建構資訊,列印資訊,并生成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}
