我需要获取构建触发的确切时间(build periodically
选项当前正在使用)。由于配置,只有3个任务可以并行运行。考虑现在并行运行3个任务。因此执行者将把下一个任务放在Waiting for the next available Executor
状态。所以我需要访问这个等待时间或者确切地说它是在启动时,因为日期意味着它被触发。
我也使用了Build Timestamp Plugin。但没用。它给出了构建步骤开始的时间。所以有人可以帮我这么做吗?感谢。
答案 0 :(得分:0)
我找到了一个现在要分享的解决方案。如果有人处于相同的情况,这可能会对他们有所帮助。
build_details = get('http://localhost:8080/jenkins/job/<jobName>/api/xml?tree=builds[id,queueId]&xpath=//build[id=<buildId>]')
queueId = build_details['build']['queueId']
queue_details = get('http://localhost:8080/jenkins/queue/item/<queueId>/api/json')
job_queued_time = Time.at(queue_details['inQueueSince'] / 1000.0).to_time.utc
Note:
我发布了伪代码,而不是完整的解决方案。您必须将其移植到您的语言。 <jobName>
,<buildId>
,<queueId>
是变量,请替换它们。
这里,localhost:8080
对于每个人都是相同的,因为这将在Jenkins机器本身中运行。通常,我的解决方案适用于单节点Jenkins(即No master-slave
体系结构)。我尚未在master-slave
中对其进行过测试。