我试图让Jenkins上游触发器处理多个项目,看起来它是根据Other available triggers支持的,并且当多个"项目/分支"字面上指定了ares,但是当我输入带有分支匹配的代码时,它不起作用。
工作代码 - 使用下面的代码,构建由proj1 / dev或proj2 / dev的成功构建触发。
triggers {
upstream(
‘proj1/dev,proj2/dev’, thresholdhudson.model.Result.SUCCESS
)
}
无法使用代码 - 使用以下代码,虽然Jenkins没有语法错误,但未触发构建。
triggers {
upstream(
upstreamProjects: ‘”proj1/“ + env.BRANCH_NAME.replaceAll("/", "%2F”),”proj2/“ + env.BRANCH_NAME.replaceAll("/", "%2F")',
threshold: hudson.model.Result.SUCCESS
)
}
感谢任何帮助。
答案 0 :(得分:1)
你的整个事情都被单引号所包围。这意味着您将其设置为单引号内的确切文本,而不是使用变量进行设置。并且您没有正确构建字符串,逗号和引用不正确。它应该只是:
triggers {
upstream(
upstreamProjects: 'proj1/' + env.BRANCH_NAME.replaceAll('/', '%2F') + ', proj2/' + env.BRANCH_NAME.replaceAll('/', '%2F'),
threshold: hudson.model.Result.SUCCESS
)
如果你不是内插变量,我也更喜欢单引号,正如我上面所做的那样。
另一个选项作为带有插值变量的单个字符串。这有点容易阅读:
triggers {
upstream(
upstreamProjects: "proj1/${env.BRANCH_NAME.replaceAll('/', '%2F')},proj2/${env.BRANCH_NAME.replaceAll('/', '%2F')}",
threshold: hudson.model.Result.SUCCESS
)
希望您的所有智能引号在代码中实际上都不是智能引号,或者那些不能正常工作的引号。我希望这只是一个复制/粘贴错误,将代码放入您的帖子。