我有以下Jenkins设置:
在上游MB管道中,有以下片段:
options {
copyArtifactPermission('my-downstream-project');
}
post {
success {
script {
if (isRelease()) {
build job: 'my-downstream-project'
}
}
}
}
下游管道,然后尝试获取工件:
copyArtifacts projectName: 'my-upstream-project',
selector: upstream(),
filter: '*.jar',
fingerprintArtifacts: true
启动下游构建时,失败并显示:
错误:无法找到工件副本的项目:hds-access-code-cache 这可能是由于不正确的项目名称或权限设置引起的。请参阅作业配置中有关项目名称的帮助。
到目前为止,我的理解是
projectName: 'my-upstream-project/tag-name'
,因为这是 actual 的工作。不过,我没有固定的分支或标签。如何正确访问上游工件?
答案 0 :(得分:0)
可以将作业名称作为参数传递下来。
将上游管道更改为:
build job: 'my-downstream-project',
parameters: [string(name: 'upstreamJobName', value: env.BRANCH_NAME)]
将参数添加到下游管道:
parameters {
text(name: 'upstreamJobName',
defaultValue: '',
description: 'The name of the job the triggering upstream build'
)
}
并将复制指令更改为:
copyArtifacts projectName: "my-upstream-project/${params.upstreamJobName}",
selector: upstream(),
filter: '*.jar',
fingerprintArtifacts: true
瞧,
从“我的上游项目»my-tag”内部版本1中复制了1个工件