我有一个Shell脚本的工作,每30分钟后运行一次,下载并接受来自源代码管理的更改.现在我想继续我的shell脚本当且仅当;
我的工作区OR有新的变化
没有新的变化,但我对同一工作的最后一次运行被标记为不稳定.
我查看了Jenkins wiki,但是从明显的环境变量来看,如果不使用Jenkins XML API或某些python脚本在我的构建中编写代码,就不可能找到"我的上次运行"是稳定还是不稳定...是有没有简单的方法来查找这些信息?
您必须使用URL API,除非您想进一步使其复杂化 jenkins-cli
/api/json
end-point是最容易在shell/bash中使用的,因为它在一行中提供所有信息.然后我们可以为我们需要的数据grep它,去掉前导标识符,并获得结果.
您可以访问当前的内部版本号,BUILD_NUMBER
并可以计算前一个版本号.您也可以方便地访问JOB_URL
.
#!/bin/bash # Calculate previous build number prevBuild=$(($BUILD_NUMBER - 1)) # Get previous run status, returns like: result":"UNSTABLE prevStatus=`curl -silent http://${JOB_URL}/${prevBuild}/api/json | grep -iEo 'result":"\w*'` # Strip out leading identifier, i.e: result":" prevStatus=${prevStatus/result\"\:\"/} if [[ "$prevStatus" == "UNSTABLE" ]]; then do_whatever fi