Что такое автоматическое создание нового конвейера сборки? - PullRequest
0 голосов
/ 02 февраля 2019

Для данного проекта у меня есть четыре конвейера сборки, для каждого конвейера Trigger включен CI, у каждого есть фильтр веток для одной ветки - master, Staging, QA, development.Они работают успешно, любой завершенный запрос на получение доступа к одной из этих четырех веток успешно запускает процесс сборки.

Сегодня утром я создал новую ветку на основе ветки "разработка".Это было однострочное изменение, поэтому я решил сделать это онлайн в браузере, используя редактор DevOps.Я сохранил изменения.

Сразу после сохранения изменений в Интернете я увидел, что был создан новый конвейер сборки (мне пришло электронное письмо с сообщением о сбое сборки).Что вызвало создание нового конвейера сборки?

Новый конвейер сборки выглядит автоматически созданным, это чистый YAML:

pool:
  vmImage: 'Ubuntu 16.04'

variables:
  buildConfiguration: 'Release'
  BuildPlatform: 'Any CPU'
  Parameters.solution: = '*.sln'
  Parameters.ArtifactName: = 'xxxxxx'

steps:
- task: NuGetToolInstaller@0
  displayName: 'Use NuGet 4.4.1'
  inputs:
    versionSpec: 4.4.1

- task: NuGetCommand@2
  displayName: 'NuGet restore'
  inputs:
    restoreSolution: '$(Parameters.solution)'

- task: VSBuild@1
  displayName: 'Build solution'
  inputs:
    solution: '$(Parameters.solution)'
    platform: '$(BuildPlatform)'
    configuration: '$(BuildConfiguration)'

- task: PublishSymbols@2
  displayName: 'Publish symbols path'
  inputs:
    SearchPattern: '**\bin\**\*.pdb'
    PublishSymbols: false
  continueOnError: true

- task: PublishBuildArtifacts@1
  displayName: 'Publish Artifact'
  inputs:
    PathtoPublish: '$(build.artifactstagingdirectory)'
    ArtifactName: '$(Parameters.ArtifactName)'

В проекте не было запросов на извлечениесоздал и мою частную ветку, я вижу свои изменения.

В электронном письме, которое я получил, было это в заголовке (фактические имена удалены):

[Сбой сборки] MyProjectName CI - MyProjectName: MyBranchName - MyProejctName - bf9524f9

========

EDIT

Я только что обнаружил, что в корневой папке ветки есть файл azure-pipelines.yml.содержимое соответствует вышеуказанному.Это конкурирует с дизайнерскими конвейерами?

Ответы [ 2 ]

0 голосов
/ 16 августа 2019

Обновленный комментарий:

Кроме того, тот факт, что в вашем yaml нет триггеров, означает, что каждая новая ветвь будет строить в очереди.Прочитайте о 'триггере' в схеме yaml, чтобы лучше понять это.

Вы можете использовать что-то вроде ниже;

trigger:
   branches:
    include:
    - master
    - develop
    exclude:
    - no-build-branch

Учитывая, что ничего не определено, ведет себя как показано ниже:

trigger:
  branches:
   include:
    - '*'

Эти два одинаковы ....

Дизайнер выбираетazure-pipelines.yml, когда вы нажимаете редактировать.Это имя файла по умолчанию, которое выбирается автоматически для создания конвейера.

Например, если вы добавляете источник конвейера в azure-pipelines.yml и фиксируете / толкаете, он автоматически создает конвейер с именем 'Repo_Name CI'и поставить в очередь сборку, а также.

Любые новые изменения будут работать по существу согласно определению yaml.

вы всегда можете использовать разные имена и добавлять столько конвейеров, сколько захотите .....

0 голосов
/ 03 февраля 2019

конвейеры Yaml лучше масштабируются, вы можете управлять ими в центральном месте, вы можете легко вносить массовые изменения и \ или вы можете заставить их зависеть друг от друга, чтобы иметь больше контроля.Визуальный дизайнер хорош только тогда, когда у вас есть пара конвейеров или вы только начинаете работать с целыми конвейерами.

конвейеры Yaml не обязательно должны быть в файле azure-pipelines.yml.Я храню их в отдельном репо:)

...