CI/CD流水线:非制品中间文件的最佳存储目录选择?
同阶段临时共享文件的目录选择最佳实践
直接给结论:你现在用的Pipeline.Workspace完全符合最佳实践,是这类场景的首选。下面拆解几个目录的定位差异,帮你更明确:
Pipeline.Workspace:这就是流水线专门给作业/阶段内任务共享中间文件用的工作目录。它的生命周期和当前作业/阶段绑定,既能保证同阶段后续任务稳定访问到文件,又会在流水线结束后(或作业完成后)自动清理(自托管代理可手动调整清理规则),完美匹配你“不发布为制品、仅同阶段后续任务调用”的需求。Build.ArtifactStagingDirectory:这个目录是专门用来存要发布成正式制品的文件的,比如编译后的二进制包、最终产物。你的文件不需要发布,放这里会混淆“中间文件”和“待发布制品”的边界,不符合职责单一的最佳实践,别用。Agent.TempDirectory:这是代理的系统临时目录,用来存任务执行时的临时垃圾文件,单个任务结束后就可能被清理,根本没法保证同阶段后续任务能读到文件,风险很高,绝对不适合。
如果后续有跨阶段共享文件的需求,那得用作业间传递工件的方式,但你现在的场景Pipeline.Workspace就是最优解。
内容的提问来源于stack exchange,提问作者Ryan James
相关产品推荐
相关产品推荐

