如何在具有多个生成验证和路径筛选器的Azure Dev Ops上创建PR触发器?

时间:2019-12-10 22:41:36

标签: azure-devops azure-pipelines

这将在我完成PR后成功建立,但它并不是PR验证的一部分。另外,由于某种原因,当我从dev分支创建新发行版时,它也不触发那里的构建(因此,我在release分支上构建的条件之一就是,没有为我的发布管道创建构件)

在Dev和Releases / *分支上我对分支策略的当前构建验证

Build Validation

我的API的Azure管道:

trigger:
  branches:
    include:
    - Dev
    - Releases/*
  paths:
    include:
    - MCR.API/*

jobs:
- job: api
  variables:
    configuration: release
  pool:
    vmImage: 'vs2017-win2016'
  steps: 
  - task: DotNetCoreCLI@2
    displayName: Restore
    inputs:
      command: restore
      projects: '**/*API.csproj'

  - task: DotNetCoreCLI@2
    displayName: Build
    inputs:
      command: build
      projects: '**/*API.csproj'

  - task: DotNetCoreCLI@2
    displayName: Publish API
    inputs:
      command: publish
      publishWebProjects: false
      projects: '**/*API.csproj'
      arguments: '--output $(build.artifactstagingdirectory) --configuration $(configuration)'
      zipAfterPublish: True

  - task: PublishBuildArtifacts@1
    displayName: 'Publish API Artifact'
    condition: and(succeeded(), startsWith(variables['Build.SourceBranch'], 'refs/heads/Releases/'))
    inputs:
      PathtoPublish: '$(build.artifactstagingdirectory)'
      artifactName: 'API'

我希望这可以强制PR开发人员和Releases / *在成功完成之前构建成功(不是那样)。我希望它在PR完成后构建(它正在这样做)。我希望它在Releases / *分支中创建新的Release时进行构建(不这样做)。

1 个答案:

答案 0 :(得分:0)

所以这个问题的答案很简单...

在构建验证策略中,即使您的yaml管道文件中不需要一个斜杠,也请确保目录前面有一个斜杠。

到目前为止,我已对此进行了更改:

MCR.API/*
MCR/*
MCR.Admin/*

收件人:

/MCR.API/*
/MCR/*
/MCR.Admin/*

一切都按我的意愿进行。