Как остановить запуск проверки azure dev ops yaml для каждой ветви? - PullRequest
0 голосов
/ 07 февраля 2020

Мы используем azure dev ops для CICD и проверяем PR.

Вчера я решил начать создавать файлы yaml для проверочных сборок.

Я создал конвейер. Я установил политику ветки для «разработки», и сборка проверки прошла нормально.

Однако я вижу, что каждый раз, когда ЛЮБАЯ ветвь получает изменения в файлах каталога, я установила сборку проверки для сборки запускает.

Итак, допустим, я создал конвейер yaml (только для CI) для проекта Main (src / Main) и установил политику ветки для ветки 'development', чтобы запускать сборку проверки всякий раз, когда есть изменение в этой главной папке (src / Main / *) с Main.sln внутри, и это были PR из ветви (т.е. feature / Main / FirstPR). Это работает, но затем, если я сливаю 'development' в любую ветку, в которой не было изменений в основной каталог, это вызовет эту сборку. Никакая другая отраслевая политика не включает валидацию для Main, кроме разработки, даже если она не была опубликована, а просто подтолкнута.

Вот пример файла yaml. Любая обратная связь будет оценена.

# ASP.NET Core (.NET Framework)
# Build and test ASP.NET Core projects targeting the full .NET Framework.
# Add steps that publish symbols, save build artifacts, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/dotnet-core

pool:
  vmImage: 'windows-2019'
  demands: 
      - msbuild
      - visualstudio
      - vstest

variables:
  solution: 'src/Main/Main.sln'
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Release'

steps:
- task: NuGetToolInstaller@1
  inputs: 
    versionSpec: '5.0.0'

- task: NuGetCommand@2
  inputs:
    command: 'restore'
    restoreSolution: '$(solution)'
    feedsToUse: 'select'
    vstsFeed: '5aaa76ac-3bqa-4567-usd9-btdse1c4c66a'
    restoreDirectory: '../../packages'

- task: VSBuild@1
  inputs:
    solution: '$(solution)'
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'

- task: VSTest@2
  inputs:
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'

1 Ответ

1 голос
/ 07 февраля 2020

Set;

# A pipeline with no trigger
trigger: none

В проверочном конвейере сборки. Это остановит запуск сборки независимо от того, какие ветви / пути были переданы.

Конвейер сборки проверки будет по-прежнему учитывать политики веток, которые вы настроили для PR.

После этого вы можете иметь что-то вроде;

  paths:
    include:
      - 'src/ProjectA/*'
  branches:
    include:
      - development  

Для ваших конвейеров сборки CI, которые срабатывают при успешном PR, который влияет на ProjectA.

...