即使我将最大构建数量设置为一个数字,Jenkins 中的存档目录是否已保存?

Tza*_*mon 3 directory build archive jenkins

我试图了解存档目录的用途。从我所看到的,存档是每个构建的。这意味着如果我将“要保留的最大构建数”设置为 3,例如,存档也将被删除。

那是对的吗?

如果是这样,我如何告诉 Jenkins 只保存我创建的工件(zip 文件)并删除构建目录?

是否有一个适用于所有构建的归档目录?

Ger*_*ica 5

默认情况下,Jenkins 作业有两个目录(builds如果是工作流作业,可以只有一个, 或更多,例如附加promotions目录):

  • JENKINS_HOME/jobs/${JOB_NAME}/builds/ 根据包含子目录 $BUILD_ID
  • JENKINS_HOME/jobs/${JOB_NAME}/workspace/

因此,有每个作业一个工作区每一个建立build目录


不要让页面管理 Jenkins与由JENKINS-8446驱动的此更改混淆。内联帮助(在撰写本文时的当前 v1.635)中也提到的工作区默认值仍然是:

管理 Jenkins → 配置系统 → 高级... → 工作区根目录${ITEM_ROOTDIR}/workspace

不是${JENKINS_HOME}/workspace/${JOB_NAME}


如果丢弃旧构建,工作空间不会被丢弃,但是,由于它存在于每个作业中,它会被每个新构建覆盖。因此,如果您想保留旧工件,您可以:

  • 创建一个使用Copy Artifact Plugin的“归档”作业,并将其作为下游连接到您的构建作业。
  • 使用Post-build ActionGroovy Postbuild或 → Execute a set of scripts将它们自己移动到其他位置(包括创建唯一命名的子目录来存储工件)。

还有Discard Old Build 插件,它通过Post-build Action增强了 Jenkins 的内置丢弃功能。