对于一个项目,AI 想要在 B 构建成功时触发它的构建。我可以通过 Jenkins 控制台通过从构建触发器中选择选项来实现这一点。
现在我想通过在项目 A 的 Jenkins 文件中编写相应的步骤来实现这一点。
可以使用哪些步骤我试过 triggers{ upstream('B',hudson.model.Result.SUCCESS) }
对于一个项目,AI 想要在 B 构建成功时触发它的构建。我可以通过 Jenkins 控制台通过从构建触发器中选择选项来实现这一点。
现在我想通过在项目 A 的 Jenkins 文件中编写相应的步骤来实现这一点。
可以使用哪些步骤我试过 triggers{ upstream('B',hudson.model.Result.SUCCESS) }
只是一个建议,您也可以只在项目B中对此进行更改。在项目B的发布操作中添加一个步骤以在B成功时构建项目A:
项目 B:
pipeline{
agent{
label "node"
}
stages{
stage("A"){
steps{
echo "========executing A========"
}
}
}
post{
success{
build propagate: false, job: 'A'
}
}
}
post {}
将在项目B构建时执行,其中的代码success {}
只有在项目B成功时才会执行。
build propagate: false, job: 'A'
将调用项目 A。propogate: false
确保项目 B 不等待项目 A 完成,而是简单地调用它。
来自https://www.jenkins.io/doc/book/pipeline/syntax/#triggers:
上游触发器“接受逗号分隔的作业字符串和阈值。当字符串中的任何作业以最小阈值完成时,管道将被重新触发。例如:triggers { upstream(upstreamProjects: 'job1,job2', threshold: hudson.model.Result.SUCCESS) }
”
要在项目 B 成功构建后触发项目 A 的构建,项目 A 的 JenkinsFile 可能如下所示:
properties(
[pipelineTriggers(
[upstream(
upstreamProjects: 'project_b_job_path',
threshold: hudson.model.Result.SUCCESS
)]
)]
)
其中project_b_job_path
等于作业的绝对或相对路径,例如:
projects/project_b/master
../project_b/master
test_branch