2

我想将一项工作中存在的工件复制到另一项工作。问题是给出的路径是相对于

$JENKINS_HOME/userContent 现在我的数据存在于其中一项工作中,我该如何复制它?

谢谢

4

3 回答 3

7

我假设您正在使用“从另一个项目复制工件”构建后操作,对吗?

从中复制工件的位置相对于:
-工件文件夹,
- 对于选定的构建,
- 对于您选择从中复制的作业

因此,首先,您必须确保您从中复制的作业实际上是对工件进行存档。它不会从工作区复制文件(还有其他插件)。

要归档您的工件,在创建它们的作业中,选择构建后操作“归档工件”,然后提供您想要归档的工件列表,相对于工作空间。例如,要归档所有 zip 文件,无论它们在哪里,请使用:

**/*.zip

或者,如果您知道所有工件都在“build”文件夹中,但中间可能有中间目录,请使用:

build/**/*.zip

或者只是提供一个完整的路径:

build/myartifactsfolder/myfile.zip

现在,要查看可用的工件,请在浏览器中导航到要从中复制的作业的 URL,选择要从中复制的构建,然后在末尾附加 /artifact/,或者只需单击“构建工件"页面上的链接:

example: http://localhost/job/YourJob/lastBuild/artifact/

这将显示一个目录结构和所有可用的工件。您可以直接在“复制工件”后期构建步骤中引用它。或者您可以使用通配符。例如,如果您想忽略任何目录结构,只复制所有 *.zip 文件,您的“要复制的工件”字段应为:

**/*.zip

双星忽略其间的目录。您可以使用逗号分隔多个条目。或者,如果您将此字段留空,它将复制所有可用的工件。

在接收端,“目标目录”与调用“复制工件”步骤的作业的工作区相关。

最后,如果您不关心目录结构,请选中“展平目录”选项,以便所有工件最终位于同一个位置,忽略其间的任何文件夹。

于 2012-11-02T13:36:50.800 回答
0

最简单的解决方案:

  • 让Job -A将其工件保存到共享位置。
  • 让Job -B从该共享位置读取Job-A的工件。

如果您想保存Job-A工件的多个副本(例如最近 10 次构建的历史记录),
Job-A通过参数将相关工件的确切位置传递给Job-B

于 2012-11-03T12:41:34.817 回答
0

1 首先安装复制工件插件然后将构建步骤添加到您的工作并从项目中选择复制工件。2 如果需要,请提供适当的项目名称(创建 zip/war 等的作业)和内部版本号。现在关注 Artifacts to copy field..eg give **/*zip 这将在步骤 2 中搜索提到的项目的 artifact 文件夹内的 *zip 并复制整个结构,包括当前作业工作空间内的 .zip。例如,如果 zip 在 /artifact/xyz/www.zip 中,则整个结构(即 xyz/www.zip)将被复制到您的工作区。为避免复制整个结构并仅复制 zip,您可以使用展平目录选项。

于 2014-08-05T06:32:10.583 回答