Azure Pipeline运行结束后,执行过程中对文件的修改是否会被丢弃?
Azure Pipeline 中CmdLine脚本修改文件的留存结论
默认情况下,流水线运行期间对文件做的修改会在运行结束后被丢弃,不会自动保留,具体规则分场景说明:
- 微软托管代理场景:这类代理是Azure按需分配的临时虚拟机,整个流水线执行完成后虚拟机会直接被回收重置,所有本地文件修改会被彻底清除,没有留存可能。
- 自托管代理场景:代理是用户自己部署的常驻机器,不会在流水线跑完后被销毁,但默认配置下每次触发新的流水线运行时,都会先清理代理上的工作目录、重新拉取对应版本的代码快照,上一次运行留下的文件改动会被直接覆盖清除。
如果需要保留修改后的文件,必须在流水线中显式配置持久化操作,常见的有效方式包括:
- 在脚本修改完文件后,追加git提交、推送步骤,把改动同步推送到远端代码仓库,改动会作为仓库提交记录永久留存。
- 配置发布构建产物任务,把修改后的文件上传到流水线的关联存储中,后续可以在对应流水线的运行记录页下载修改后的文件。
- (不推荐)如果是自托管代理,把文件输出到代理工作目录之外的固定磁盘路径,同时关闭流水线的工作区自动清理配置,文件会留在代理机器本地,但这种方式很容易造成不同流水线运行之间的文件污染,引发难以排查的异常问题。
注意:不要依赖代理本地的临时工作区存储任何需要留存的内容,临时工作区的设计初衷就是给单次流水线运行提供隔离的执行环境,本身不做持久化保证。
内容的提问来源于stack exchange,提问作者Nikola Vacic
相关产品推荐
相关产品推荐

