我有一个作业,当它完成时(构建后操作)触发参数化构建(作业a)
被触发的构建为JOB_NAME 的值设置了一个名为foo的字符串参数
"作业A"有一个构建步骤,如果我将项目名称设置为我正在传递的变量(%foo%),则"从另一个项目复制工件"
我可以确认%foo%得到了正确的值,但是当构建步骤执行时,它无法替换变量
这是我收到的错误消息找不到项目副本的项目:%foo%
我正在寻找替代方案来解决我的问题如何为来自另一个项目的复制工件动态传递项目名称
是否查看了复制工件构建步骤的帮助?如果您点击项目名称字段旁边的问号,您将看到以下文本:
用于复制工件的源项目的名称。可能包含对构建参数的引用,如$PARAM(注意,当使用参数时,所有经过身份验证的用户都必须可以访问源项目;这可以防止使用参数访问私有作业的工件)
因此,您应该尝试$foo
而不是%foo%
。
也有类似的问题。
@sti引用的项目名称上的"问号文本"同时发生了更改,仅显示maven模块的信息。
我得到的错误信息:
找不到工件副本的项目:XYZ
这可能是由于项目名称或权限设置不正确;请参阅作业配置中有关项目名称的帮助。
会提示您缺少权限,但可能很难理解(什么样的项目权限?)。
所以我缺少的是:
进入你的"源"-工作/项目,你想从那里复制工件,并检查
Permission to Copy Artifact
已正确设置为要复制INTO的作业。(或者设置为通配符,如*)。
对于那些使用jenkins作业生成器的人,您可以设置所需的权限,如下所示:
- 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