2

我有一份工作,当它完成时(构建后操作)触发参数化构建(工作 A)

被触发的构建为 JOB_NAME 的值设置了一个名为 foo 的字符串参数

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

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

这是我收到的错误消息 Unable to find project for artifact copy: %foo%

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

4

3 回答 3

4

您是否查看了 Copy artifacts 构建步骤的帮助?如果单击项目名称字段旁边的问号,您将看到以下文本:

用于复制工件的源项目的名称。可能包含对 $PARAM 等构建参数的引用(请注意,使用参数时,源项目必须可供所有经过身份验证的用户访问;这可以防止使用参数来访问私有作业的工件)

所以,你应该尝试$foo而不是%foo%.

于 2012-07-24T21:24:15.927 回答
2

有类似的问题。

@sti 引用的项目名称上的“问号文本”同时更改,仅显示 maven 模块的信息。

我得到的错误信息:

找不到工件副本的项目:XYZ

这可能是由于项目名称或权限设置不正确;请参阅作业配置中项目名称的帮助。

提示您缺少权限,但可能很难捕捉或理解(什么样的项目权限?)。

所以对我来说缺少什么:

进入您要从中复制工件的“源”-作业/项目,并检查

Permission to Copy Artifact

已正确设置为要复制 INTO 的作业。(或设置为 * 之类的通配符)。

于 2014-09-11T20:49:07.350 回答
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

于 2015-08-19T00:13:41.627 回答