我想将一个作业中存在的工件复制到另一个作业。问题是给定的路径是相对于
$ JENKINS_HOME / userContent 现在我的数据存在于其中一个作业中,我该如何复制?
由于
答案 0 :(得分:5)
我假设您正在使用"从另一个项目复制工件"构建后的行动,对吧?
从中复制工件的位置相对于:
- 工件文件夹,
- 对于选定的构建,
- 对于您选择从中复制的作业
因此,首先,您必须确保要复制的作业实际存档工件。它不会从工作区复制文件(还有其他插件)。
要归档您的工件,在创建它们的作业中,选择构建后操作"归档工件",然后提供相对于工作空间要归档的工件列表。例如,要归档所有zip文件,无论它们在何处,请使用:
**/*.zip
或者,如果您知道所有工件都在" build"文件夹,但中间可能有中间目录,使用:
build/**/*.zip
或简单地提供完整路径:
build/myartifactsfolder/myfile.zip
现在,要查看可用的工件,请在浏览器中导航到要复制的作业的URL,选择要从中复制的构建,然后在末尾附加/ artifact /,或者单击"制作文物"页面上的链接:
example: http://localhost/job/YourJob/lastBuild/artifact/
这将显示目录结构和所有可用的工件。
您可以在"复制工件"直接构建后步骤。或者您可以使用通配符。例如,如果你想忽略任何目录结构,只是复制所有* .zip文件,你的"工件要复制"领域应该是:
**/*.zip
双星忽略了两者之间的目录。 您可以使用逗号分隔多个条目。或者,如果将此字段留空,则会复制所有可用的工件。
在接收端,"目标目录"是相对于调用"复制工件"的工作的工作区。步骤
最后,如果您不关心目录结构,请选中" Flatten目录"选项,以便所有工件最终都在同一个地方,忽略其间的任何文件夹。
答案 1 :(得分:0)
最简单的解决方案:
您希望保存 Job-A 工件的多个副本(例如最近10个版本的历史记录),例如 让 Job-A 通过参数将相关工件的确切位置传递给 Job-B 。
答案 2 :(得分:0)
1首先安装复制工件插件 然后为您的作业添加构建步骤,并从项目中选择复制工件。 2如果需要,提供相应的项目名称(创建zip / war等的作业)和内部编号。 现在专注于Artifacts来复制field..e.g给** / * zip 这将在步骤2中搜索上述项目的工件文件夹中的* zip,并将整个结构(包括.zip)复制到当前作业的工作空间内。 例如,如果zip位于/artifact/xyz/www.zip内,那么整个结构即xyz / www.zip将被复制到您的工作区。为避免复制整个结构并仅复制zip,您可以使用展平目录选项。