Jenkins相关问题 - 复制工件

use*_*119 2 continuous-integration jenkins jenkins-plugins

我想将一个作业中存在的工件复制到另一个作业.问题是给定的路径是相对的

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

谢谢

Sla*_*lav 6

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

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

因此,首先,您必须确保要复制的作业实际上是归档工件.它不会从工作区复制文件(还有其他插件).

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

**/*.zip
Run Code Online (Sandbox Code Playgroud)

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

build/**/*.zip
Run Code Online (Sandbox Code Playgroud)

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

build/myartifactsfolder/myfile.zip
Run Code Online (Sandbox Code Playgroud)

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

example: http://localhost/job/YourJob/lastBuild/artifact/
Run Code Online (Sandbox Code Playgroud)

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

**/*.zip
Run Code Online (Sandbox Code Playgroud)

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

在接收端,"目标目录"是相对于调用"复制工件"步骤的作业的工作空间.

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