启用构建验证后,提交PR时Azure DevOps的CD步骤是否会运行?
关于Azure DevOps PR构建验证执行CD步骤的问题
默认行为:如果直接把包含CD步骤的管道关联到PR构建验证,PR触发时会执行整个管道的所有步骤,包括停止IIS、部署代码这类操作,会带来误部署的风险。
解决办法:
- 拆分独立管道:把CI和CD拆成两个管道。CI管道只保留构建、测试等PR验证需要的步骤,关联到PR构建验证;CD管道单独负责部署操作,在PR合并后再触发。
- 给CD步骤加执行条件:在现有管道里,给停止IIS、部署代码这类CD步骤添加条件判断,只有非PR触发的构建才执行这些步骤。
示例YAML配置:
当PR触发构建时,steps: - task: IISWebAppManagementOnMachineGroup@0 displayName: '停止IIS' condition: ne(variables['Build.Reason'], 'PullRequest') - task: AzureRmWebAppDeployment@4 displayName: '部署代码' condition: ne(variables['Build.Reason'], 'PullRequest')Build.Reason的值为PullRequest,CD步骤会自动跳过,只运行CI相关步骤。
额外提醒:PR验证管道建议只保留构建、单元测试、代码扫描这类不影响生产环境的操作,彻底避免误操作的可能。
内容的提问来源于stack exchange,提问作者noumanmalik56
相关产品推荐
相关产品推荐

