使用动态项目名称替代项复制工件构建步骤

时间:2012-07-24 18:46:54

标签: jenkins jenkins-plugins

我有一份工作,当它完成时(Post build Actions)触发参数化构建(作业A)

正在触发的构建为JOB_NAME

的值设置一个名为foo的字符串参数

“作业A”有一个构建步骤来“复制来自另一个项目的工件”我将项目名称设置为我传递的变量(%foo%)

我可以确认%foo%正在获取正确的值,但是当构建步骤执行时,它无法替换变量

这是我收到的错误消息 无法找到工件副本的项目:%foo%

我正在寻找替代方案来解决我的问题 如何从另一个项目动态传递项目名称以复制工件

3 个答案:

答案 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