我最近为我的项目应用了多阶段 YAML,该项目由 CI 和 CD 组成。
之后,我将分支策略设置为仅在创建拉取请求时触发 CI 部分,方法是在 CD 阶段添加条件以跳过它。
trigger:
branches:
include:
- master
paths:
include:
...
stages:
- stage: Build
jobs:
- job: Build
pool:
vmImage: 'windows-latest'
steps:
...
- stage: Deploy
condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'))
displayName: 'Deploy'
jobs:
...
一旦拉取请求完成,整个 CI/CD 部分再次触发,因为主分支有新的代码被推入。有没有办法阻止 CI 再次运行,或者从以前的运行中下载工件,所以有点“恢复”光盘?
这个想法是在创建拉取请求时仅运行 CI,并在拉取请求完成后继续运行 CD。