我有一份工作,当它完成时(Post build Actions)触发参数化构建(作业A)
正在触发的构建为JOB_NAME
的值设置一个名为foo的字符串参数“作业A”有一个构建步骤来“复制来自另一个项目的工件”我将项目名称设置为我传递的变量(%foo%)
我可以确认%foo%正在获取正确的值,但是当构建步骤执行时,它无法替换变量
这是我收到的错误消息 无法找到工件副本的项目:%foo%
我正在寻找替代方案来解决我的问题 如何从另一个项目动态传递项目名称以复制工件
答案 0 :(得分:4)
您是否检查了复制工件构建步骤的帮助?如果单击项目名称字段旁边的问号,您将看到以下文本:
用于复制工件的源项目的名称。可能包含对$ PARAM等构建参数的引用(请注意,使用参数时,所有经过身份验证的用户都必须可以访问源项目;这可以防止使用参数访问私有作业的工件)
因此,您应该尝试$foo
而不是%foo%
。
答案 1 :(得分:2)
有类似的问题。
"问号文字"在@sti引用的项目名称同时更改,仅显示maven模块的信息。
我收到的错误消息:
无法找到工件副本的项目:XYZ
这可能是由于项目名称或权限设置不正确造成的;在作业配置中查看项目名称的帮助。
给出了关于缺少权限的提示,但可能很难捕获或理解(什么样的项目权限?)。
所以我缺少的是:
进入你想要复制文物FROM的"来源" -Job / Project,然后检查
Permission to Copy Artifact
已正确设置为您要复制INTO的作业。 (或设置为*的通配符。)
答案 2 :(得分:0)
对于使用jenkins-job-builder的用户,您可以设置所需的权限,如下所示:
- job:
name: project-to-copy-from
properties:
- copyartifact:
projects: "*"
然后你可以这样使用copyartifact
:
- job:
name: project-to-copy-to
builders:
- copyartifact:
project: project-to-copy-from
which-build: last-successful
http://docs.openstack.org/infra/jenkins-job-builder/properties.html#properties.copyartifact