shell读取构建文件信息生成json字符串

版权声明:本文为博主原创文章,未经博主允许不得转载。 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}
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/devilcry13/article/details/85703630