我已经构建了一个脚本trigger_jenkins_job.sh,该脚本目前可以正常运行。它主要由3个功能组成:
input_checkpoint
run_remotejob #: Running Jenkins job remotely using Json api.
sleep 10 #: 10 sec estimated time until pending duration is over
#and Jenkins job start running, i.e. a given slave was
#assigned to run the job.
get_buildID #: Retrieving build state, last build ID and last stable
#build ID using
问题是我想摆脱10秒钟的睡眠时间。同时,我想确保在执行功能get_buildID之前,远程触发的作业实际上正在节点上运行。
这样,我将检索触发的作业的ID,而不是队列中的最后一个ID。
关于作业的Jenkins文件,我指定了:
agent {
label 'linux-node'
}
所以,我想问题是,我需要一些如何通过bash脚本来测试linux-node是否正在运行远程触发的作业,如果是,则执行函数get_buildID。
答案 0 :(得分:0)
摆脱sleep命令并使用wait
命令。
答案 1 :(得分:0)
如果要使用令牌触发Job,则该命令本身应返回buildNumber。 另一种方法是REST API。请在此处查看“ nextBuildNumber”字段(如果构建仍在进行中),否则请参见“数字”