我的开发分支受到保护,因此您必须向其提出请求。创建新的请求请求时,我试图创建一个管道来构建和运行单元测试。
但是,当我从开发创建功能分支并推送对功能分支的更改时,即使我尚未创建拉取请求,也正在触发管道。功能分支具有yaml文件,因为它是从developer派生的。
Yaml文件:
pr:
- develop
pool:
vmImage: 'windows-latest'
variables:
solution: '**/*.sln'
buildPlatform: 'Any CPU'
buildConfiguration: 'Release'
steps:
- task: NuGetToolInstaller@1
- task: NuGetCommand@2
inputs:
restoreSolution: '$(solution)'
- task: VSBuild@1
inputs:
solution: '$(solution)'
msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactStagingDirectory)"'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
- task: VSTest@2
inputs:
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
testSelector: testAssemblies
testAssemblyVer2: |
**\*unittests**.dll
!**\*TestAdapter.dll
!**\obj\**
仅当有来自功能分支的拉取请求要开发时,我应该怎么做才能运行管道?
答案 0 :(得分:2)
YAML PR触发器仅在GitHub和Bitbucket Cloud中受支持。如果 您正在使用Azure Repos Git时,可以为 建立验证以触发您的验证管道。
答案 1 :(得分:1)
默认情况下,YAML管道在所有分支上都配置有CI触发器。
如果PR触发器不起作用,则YAML管道将由CI触发。
PR触发器不起作用的原因有两种:
PR和CI触发器可以是 在管道设置中被覆盖,默认情况下是新管道 自动覆盖YAML PR触发器。
请检查您的YAML触发器是否被覆盖,要配置此设置,请在编辑YAML管道时从设置菜单中选择触发器。
选择“持续集成”触发器或“拉取”请求验证触发器,然后从此处启用或禁用“覆盖YAML ...”触发器,以配置所需的设置。
希望这很明显。
答案 2 :(得分:1)
添加
trigger: none
到您的 yml 文件。因为,如前所述,ADO 中的管道默认在所有提交的所有分支上运行。否则,你的东西是对的......添加 trigger: none
将意味着你的管道只会在以 Develop 分支为目标发出拉取请求时运行。