我有一个Shell脚本的作业,每30分钟后运行一次,下载并接受来自源代码管理的更改。现在我想继续我的shell脚本,当且仅当;
我查看过Jenkins维基,但是从明显的环境变量来看,如果我上次运行的话,就不可能找到它。无需通过使用Jenkins XML API或某些python脚本在我的构建中编写代码就可以稳定或不稳定...有没有简单的方法来查找这些信息?
答案 0 :(得分:8)
您必须使用网址API,除非您想进一步使用jenkins-cli
/api/json
端点是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
答案 1 :(得分:4)
您可以直接将curl调用到http:// $ {JOB_URL} / lastBuild / api / json
无需获得prev build编号。