即使我将 Max # of builds 设置为保持数字,Jenkins 中的存档目录是否已保存?

Is the archive directory in Jenkins saved even if I set Max # of builds to keep to a number?

我正在尝试了解存档目录的用途。 据我所见,存档是按构建的。意思是如果我将 'Max # of builds to keep' 设置为 3,例如,存档也将被删除。

对吗?

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

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

默认情况下,Jenkins 作业有两个目录(如果是 Workflow 作业,可以只有一个 builds,或者更多,例如一个额外的 promotions 目录):

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

因此,每个作业一个工作区每个构建一个构建目录


不要让页面 Administering Jenkins with this change driven by JENKINS-8446 让您感到困惑。工作区默认值,如内联帮助(在撰写本文时的当前 v1.635)中也提到的那样,仍然是:

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

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


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

  • 创建一个使用 Copy Artifact Plugin 的 "archive" 作业并将其作为下游连接到您的构建作业。
  • 使用 Post-build Action[=59= 自己将它们移动到其他位置(包括创建唯一命名的子目录以存储工件) ] → Groovy Post构建 或 → 执行一组脚本.

还有 Discard Old Build plugin,它通过 Post-build Action.

增强了 Jenkins 的内置丢弃功能