Поделиться через


Создание нескольких ветвей в Azure Pipelines

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022

С помощью Azure Pipelines вы можете устанавливать триггеры, чтобы собирать ваш проект при каждом новом коммите и пул-реквесте в ваш репозиторий. В этой статье вы узнаете, как включить непрерывную интеграцию и настроить несколько сборок ветви для репозитория.

Предпосылки

  • Организация Azure DevOps и проект. Создайте организацию или проект, если вы еще не сделали этого.

  • Рабочий конвейер. Следуйте инструкциям в статье "Создание первого конвейера " для создания конвейера.

Включить триггер CI для тематической ветки

При работе с Git обычно рекомендуется создавать временные ветви из основной ветви, чтобы упростить рабочий процесс. Эти ветки, часто называемые тематическими или функциональными ветками, служат для изоляции вашей работы. В этом рабочем процессе создается ветвь, выделенная для определенной функции или исправления ошибок, и после завершения вы объединяете код обратно в основную ветвь перед удалением ветви раздела.

Если триггер не указан явным образом в файле YAML, любые изменения, внесенные в любую ветвь, активируют выполнение. Чтобы добавить триггеры для основной ветви и любой функции или ветвей, добавьте следующий фрагмент кода в файл YAML. Это гарантирует, что любые изменения, внесенные в эти ветви, автоматически активируют запуск конвейера.

trigger:
- main
- feature/*

Сборки YAML пока недоступны в TFS.

Настройка задач сборки на основе создаваемой ветви

Основная ветвь обычно отвечает за создание развертываемых артефактов, таких как двоичные файлы. Для коротких ветвей функций нет необходимости инвестировать время в создание и хранение этих артефактов. В Azure Pipelines можно реализовать пользовательские условия, чтобы обеспечить выполнение конкретных задач только в главной ветви.

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

- task: PublishPipelineArtifact@1
  condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/main'))

Сборки YAML пока недоступны в TFS.

Подтверждение pull-запросов

Чтобы обеспечить защиту ветви, можно использовать политики, которые предписывают успешное построение перед объединением запросов на слияние. Используя Azure Pipelines, вы можете гибко настраивать требование новой успешной сборки для объединения изменений в ключевые ветви, такие как главная ветвь.

репозиторий GitHub

Если в файле YAML явно не определены триггеры pr , сборки запросов на вытягивание будут включены по умолчанию для всех ветвей. Однако у вас есть возможность указать целевые ветви для сборок pull-запроса. Например, если вы хотите запустить сборку только для pull request, предназначенных для ветви main и ветвей, начинающихся с feature/, можно указать следующую конфигурацию:

pr:
- main
- feature/*

Сборки YAML пока недоступны в TFS.

Репозиторий Azure Repos

  1. Войдите в организацию Azure DevOps и перейдите к проекту.

  2. Выберите Repos и затем выберите Ветви.

  3. Щелкните значок многоточия справа от имени вашей ветки и выберите Правила ветки.

  4. В меню "Проверка сборки" выберите знак +, чтобы добавить политику сборки.

  5. Выберите конвейер сборки в раскрывающемся меню и убедитесь, что триггер установлен в положение "Автоматический", а требование политики установлено как "Обязательное".

  6. Введите описательное отображаемое имя для описания политики.

  7. Нажмите кнопку "Сохранить", чтобы создать и включить политику. Нажмите кнопку "Сохранить изменения " в левом верхнем углу экрана, чтобы сохранить изменения.

Снимок экрана: добавление новой политики сборки.

  1. Чтобы проверить политику, перейдите к Repos>пулл-реквестам в портале Azure DevOps.

  2. Выберите Новый pull request и убедитесь, что ваша ветка настроена на слияние с главной веткой, затем выберите Создать.

  3. На экране отображается политика, выполняемая в данный момент.

  4. Выберите имя политики, чтобы проверить компиляцию. Если сборка завершится успешно, pull request будет объединён. Если сборка завершается ошибкой, слияние будет заблокировано.

Примечание.

Azure Pipelines больше не поддерживает политики хранения для каждого конвейера. Рекомендуется использовать правила хранения на уровне проекта.