源码检出时Artifact被移除,如何在检出后继续使用Artifact?
针对你遇到的Bamboo源码检出清理构建目录导致Artifact丢失的问题,给你几个可行的解决办法:
调整Artifact下载路径到非构建目录
把依赖Artifact的目标目录改成构建工作目录之外的路径,比如使用Bamboo内置变量指定:${bamboo.build.working.directory}/../artifact_store。这样源码检出任务只会清理当前构建工作目录,不会影响外部的存储目录,后续任务直接访问这个路径下的Artifact即可。修改源码检出任务的清理策略
在源码检出任务的配置里,找到清理构建目录选项,取消勾选。但要注意,这会保留构建目录里的历史文件,可能引发源码文件冲突。如果用这个方案,建议在源码检出前添加一个脚本任务,只清理需要更新的源码目录,比如执行rm -rf ./src(Linux)或rd /s /q src(Windows),避免误删Artifact。调整任务执行顺序
如果你的构建流程允许,把依赖Artifact的下载任务放到源码检出任务之后执行。这样下载的Artifact会存到已经完成检出的构建目录里,不会被后续的清理操作删除,后续任务就能直接访问。使用Bamboo缓存功能暂存Artifact
在下载Artifact的任务之后,添加一个“缓存”任务,把Artifacts目录缓存起来;然后在源码检出任务完成后,添加一个“恢复缓存”任务,把之前缓存的Artifact目录恢复到构建目录中。这种方式适合需要在多个阶段复用Artifact的场景,且不会受目录清理影响。
内容的提问来源于stack exchange,提问作者user3221037

