如何在Azure DevOps的独立CD流水线中调用CI流水线发布的构件
Azure DevOps 独立CD流水线调用CI构件实现方案
前置配置
- 确保CD流水线所属的服务账号拥有CI流水线所在项目的构件读取权限,跨项目场景需要额外开通跨项目访问权限
- 提前获取CI流水线的ID:打开CI流水线编辑页,URL中
pipelines/edit/后的数字即为CI流水线ID
CD流水线YAML示例
# CD流水线基础配置,按需修改 trigger: none # 可以配置为CI自动触发,也可以手动触发 pool: name: <你的自托管代理池名称> # 替换为你自己的自托管代理池名称 steps: # 步骤1:下载CI流水线发布的构件 - task: DownloadBuildArtifacts@1 displayName: '下载CI流水线构件' inputs: buildType: 'specific' project: '<你的Azure DevOps项目名称>' # 替换为实际项目名称 pipeline: '<CI流水线的数字ID>' # 替换为前面获取的CI流水线ID buildVersionToDownload: 'latest' # 默认取最新成功的CI构件,也可以指定具体版本 artifactName: 'drop' # 和CI中发布的构件名保持一致 downloadPath: '$(System.ArtifactsDirectory)' # 下载到代理的构件目录 # 步骤2:解压下载的output_final.zip(按需配置解压路径) - task: ExtractFiles@1 displayName: '解压前端构件包' inputs: archiveFilePatterns: '$(System.ArtifactsDirectory)/drop/output_final.zip' destinationFolder: '<你要部署的目标路径>' # 替换为自托管代理上的部署目录 cleanDestinationFolder: true overwriteExistingFiles: true # 后续可以加你自己的部署步骤,比如复制到nginx目录、上传到服务器等
补充说明
如果需要CI运行成功后自动触发CD流水线,只需要在CD流水线的触发器配置中,将CI流水线添加为管道触发器即可,无需手动执行CD流程。
内容的提问来源于stack exchange,提问作者santosh kumar patro
相关产品推荐
相关产品推荐

