3

我有 jenkin 的工作,它从 linux 用户文件夹复制 tar 文件,然后从另一个工作复制二进制文件(已编译)并制作新的 tar 文件。然后 jenkins 用户可以从 jenkin 的工作区复制新的 tar 文件。它不构建任何东西或从 SCM 获取文件。然后过了一会儿,突然 tar 文件已从工作区中删除,我不得不再次运行作业。我怎样才能防止这种情况?

4

1 回答 1

9

你真的不应该依赖工作完成后存在的工作空间,因为工作空间可能会被另一个开始的构建覆盖,或者当有人删除构建时,被奴隶离线等等......

由于您想保存文件以供以后使用,您应该在作业的构建后配置中使用“存档工件”选项。**/*.tar例如,如果您输入,Jenkins 将在构建结束时保存所有 TAR 文件。

然后您可以使用 Jenkins 的永久链接来访问工件,例如:
http://JENKINS/job/JOB_NAME/lastSuccessfulBuild/artifact/bin/my-app.tar

正如 URL 所暗示的,这将为您提供上次成功构建的文件。


作为旁注,如果您想将归档文件复制到另一个版本,最好的方法是使用Copy Artifact 插件

这样 Jenkins 会为您处理文件复制,即使跨多个 Jenkins 从属服务器,您也不必做任何讨厌的事情,比如硬编码到其他 Jenkins 工作区的路径。

于 2012-12-01T23:24:12.023 回答