Jenkins:在流水线中触发的作业如何获取构建编号

7

我有一个流水线,其中在一个阶段内运行另一堆作业:

node{
 stage("building_other_components") {
  build 'job1' 
  build 'job2' }}

我如何恢复构建编号或作业的URL?我只想通过电子邮件发送URL(例如:http://localhost:8080/job/job1/25/last-changes/,我会添加last-changes部分)。 谢谢。
2个回答

9
只要等待运行完成(默认为true),您可以从build步骤的返回值中访问结果。返回值的类型为org.jenkinsci.plugins.workflow.support.steps.build.RunWrapperJavadoc源代码)。您可以使用片段生成器查看build步骤的帮助。
以下是您的代码的一部分作为示例:
final job1Result = build('job1')
echo "Job 1 number: ${job1Result.number}"
final job2Result = build('job2')
echo "Job 2 number: ${job2Result.number}"

这里使用getNumber()方法来获取执行的运行编号。


如果我并行触发同一个作业两次会怎样?即我的下游作业具有相同的名称。 - t_sologub

3
如果对某人有用的话:
def job1_props = build 'job1'
def j1EnvVariables = job1_props.getBuildVariables();
print "${j1EnvVariables}" 

j1EnvVariables中存在环境变量BUILD URL: BUILD_URL:http://localhost:8080/job/job1/26/和BUILD_NUMBER:26以及其他有用的信息可供访问:

def path1 =" ${j1EnvVariables1.BUILD_URL}last-changes/"

def job = build job: '<jobName>' EnvVariable = job.getBuildVariables(); echo "${EnvVariable}" 以上代码段返回了一个空数组。 - Varghese John

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接