当前位置: 代码迷 >> 综合 >> jenkins:pipeline比较字符串数的大小
  详细解决方案

jenkins:pipeline比较字符串数的大小

热度:44   发布时间:2024-01-27 00:50:05.0

背景:正在用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"
}

 

  相关解决方案