如何自定义Jenkins archive artifact插件后构建动作的文件名?

问题描述 投票:13回答:2

Jenkins归档工件插件将文件压缩成 "archive.zip "文件。它的文件名总是一样的。更有甚者,Jenkins实际上并没有归档(在 "build "目录下没有任何 "archive.zip "文件)。Jenkins只是把URL映射到

https:/www.my-jenkins-server.comjenkinsjob$job_name$job_numberartifact*zip*archive.zip。

并总是返回作业目录中的所有内容,这些内容与后构建动作存档工件插件中配置的模式相匹配。

问题是,作业本身会生成ZIP归档,所以我需要以原始名称发布这个归档。这一点很重要,因为存档的名字澄清了作业的所有者,里面的数据,运行作业时使用的参数。比方说,用户使用不同的参数运行了10次作业,并且不等每次作业完成后再运行下一次。之后用户将开始下载结果,并得到

archive.zip
archive(1).zip
archive(2).zip
...
archive(10).zip

现在,他需要从这些下载的档案中提取档案,以获得10个具有限定名称的其他档案。然后删除这些下载的存档。 在那之后,通过合格的存档名称确定那些他实际需要的,然后删除其余的。在这里很容易出错,删除或错过存档文件。

我的解决方案是。

  1. 把工作生成的档案用原来的名字发布出去

  2. 生成我的文件,并形成档案的文件名下,它应该是服务,跳过压缩内的工作。最后一步,将这个文件名作为参数传入archive artifact插件的后构建动作中,这样Jenkins就会以job自己配置的特殊名称提供存档。

jenkins jenkins-plugins
2个回答
1
投票

你可以在归档步骤后运行任何后构建脚本(shellbatchpowershell),并将archive.zip重命名为archive_${BUILD_NUMBER}.zip,这样你就可以很容易地通过工作的最后成功构建号跟踪归档。但要做到这一点,首先需要清理工作空间,根据构建号来追踪归档文件。


1
投票

zip文件的名称是根据包含工件的目录来确定的(见 Jenkins 源头).

  • 在内部,最上面的工件目录的名称是 archive这就是为什么你总是会看到 archive.zip.

  • 反过来说,这意味着你可以得到一个自定义的压缩文件。xyz.zip 将工件放在一个(子)目录中。xyz.

没有其他选项可以更改名称。

© www.soinside.com 2019 - 2024. All rights reserved.