我正在尝试了解存档目录的用途。 据我所见,存档是按构建的。这意味着如果我将“要保留的构建的最大数量”设置为 3,例如,存档也将被删除。
对吗?
如果是这样,我如何告诉 Jenkins 只保存我创建的工件(zip 文件)并删除构建目录?
所有构建是否有一个存档目录?
最佳答案
默认情况下,Jenkins 作业有两个目录(可以只有一个,builds
,在 Workflow 作业的情况下,或更多,例如,一个额外的promotions
目录):
JENKINS_HOME/jobs/${JOB_NAME}/builds/
包含根据$BUILD_ID
的子目录
JENKINS_HOME/jobs/${JOB_NAME}/workspace/
因此,每个作业有一个工作区,每个构建有一个构建目录。
不要让页面 Administering Jenkins与 this change由 JENKINS-8446 驱动把你弄糊涂了。工作区默认值,如内联帮助(在撰写本文时的当前 v1.635)中也提到的那样,仍然是:
管理 Jenkins → 配置系统 → 高级... → 工作区根目录:${ITEM_ROOTDIR}/workspace
这不是${JENKINS_HOME}/workspace/${JOB_NAME}
。
如果丢弃旧构建,则工作区不会被丢弃,但是,由于它存在于每个作业中,因此它会被每个新构建覆盖。因此,如果您想保留旧工件,您可以:
- 创建一个使用 Copy Artifact Plugin 的“存档”作业并将其作为下游连接到您的构建作业。
- 使用构建后操作 → Groovy Postbuild 或 → 执行一组脚本。
还有 Discard Old Build plugin它通过构建后操作增强了 Jenkins 的内置丢弃功能。
关于jenkins - 即使我将 Max # of builds 设置为保持数字,Jenkins 中的存档目录是否已保存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33391830/