如何将多级CICD yaml与pull请求相结合
我最近在我的项目中应用了多级YAML,它由CI和CD组成 之后,我将分支策略设置为仅在创建请求时触发CI部分,方法是将条件添加到CD阶段以跳过它如何将多级CICD yaml与pull请求相结合,yaml,azure-pipelines,pull-request,azure-devops-pipelines,multistage,Yaml,Azure Pipelines,Pull Request,Azure Devops Pipelines,Multistage,我最近在我的项目中应用了多级YAML,它由CI和CD组成 之后,我将分支策略设置为仅在创建请求时触发CI部分,方法是将条件添加到CD阶段以跳过它 trigger: branches: include: - master paths: include: ... stages: - stage: Build jobs: - job: Build pool: vmImage: 'windows-l
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再次运行,或者从上一次运行中下载工件,从而“恢复”CD
其思想是在创建拉请求时仅运行CI,并在拉请求完成时继续运行CD。通过将CI和CD拆分为2个yaml文件来解决,其中CD使用CI中的工件 当PR在具有路径筛选器的分支策略中设置触发器时,请指定CI,并将CD设置为具有相同路径筛选器的相同分支的触发器。这样,自分支更新后,CD将在PR完成后触发,然后它将下载CI在PR期间创建的工件