声明性Jenkins文件中上游触发器的正确用法是什么?
我尝试添加依赖项触发器,以便在另一个项目成功构建后触发管道。
github上的jenkisci doku将上游事件列为可能的管道触发器here。
我的Jenkisfile目前看起来像这样:
pipeline {
agent {
docker {
...
}
}
options {
timeout(time: 1, unit: 'HOURS')
buildDiscarder(logRotator(numToKeepStr:'10'))
}
triggers {
upstream 'project-name,other-project-name', hudson.model.Result.SUCCESS
}
导致以下错误:
WorkflowScript: 16: Arguments to "upstream" must be explicitly named. @ line 16, column 9.
upstream 'project-name,other-project-name', hudson.model.Result.SUCCESS
^
更新
我根据代码段here更改了上游触发器的语法。所以,现在至少没有语法错误了。但是触发器仍未按预期工作。
triggers {
upstream(
upstreamProjects: 'project-name,other-project-name',
threshold: hudson.model.Result.SUCCESS)
}
如果我正确理解文档,如果两个声明的作业之一成功完成,则应触发此管道?
答案 0 :(得分:0)
如果两个项目都在同一个文件夹中,并且jenkins知道下游项目的jenkinsfile(下面提到的代码)(即下游项目已经运行了一次),这应该适合你:
triggers {
upstream(upstreamProjects: "../projectA/master", threshold: hudson.model.Result.SUCCESS)
}