通过Bash脚本远程触发Jenkins作业后,我应该何时检索作业ID?

时间:2019-02-04 11:32:59

标签: bash jenkins agent

我已经构建了一个脚本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。

2 个答案:

答案 0 :(得分:0)

摆脱sleep命令并使用wait命令。

答案 1 :(得分:0)

如果要使用令牌触发Job,则该命令本身应返回buildNumber。 另一种方法是REST API。请在此处查看“ nextBuildNumber”字段(如果构建仍在进行中),否则请参见“数字”