背景:正在用jenkins做android的单测增量覆盖率,并要求覆盖率小于80%视为构建失败
增量覆盖率:是从全量报告里分析出来的,并用shell获取到的数值,所以pipeline获取到的数值是字符串
思考:
1、本来打算将字符串转换为整型,但是Groovy里的parseInt在pipeline里会报错
2、将阈值也设置为字符串,比较的时候不行,比如"100" < "80"会显示100比80小,此做法不行
3、对jenkins pipeline的groovy语法不是很了解什么可以使用,什么不可以使用,所以打算用shell完成计算
4、用shell的if else发现也不太合适,可能还需要写脚本,所以选用shell的awk语句,用于一句话就可以完成两个字符串数字的比较,如下为pipeline的测试
def THRESHOLD = "100"
def coverage = "84"
def result = sh( returnStdout: true, script: " echo \"${coverage} ${THRESHOLD}\" | awk '{if(\$1>\$2){print '1'}else {print '0'}}' | xargs echo -n")
echo "result = ${result}"
if (result == "1"){
echo "acess success"
}else{
echo "access failed"
}