Как настроить мой конвейер Az DevOps для работы в другой ветке? - PullRequest
0 голосов
/ 09 октября 2019

Я настраиваю конвейер Azure DevOps для CI для проекта .NET Core 3.0 mvc.

Я создал новую ветку DEVOPS, в которой я хотел бы сохранить файл YAMLФайл содержит триггер для изменения ветки master:

триггер:
- master

пул:
vmImage: 'ubuntu-latest'

# другие шаги / задачи ниже ...

Я удалил все файлы, кроме .gitignore и azure-pipelines.yml из ветви DEVOPS, зафиксировал его и отправил в исходное состояние(Az DevOps Repo).

Затем я переключился на ветку master, удалил файл azure-pipelines.yml, зафиксировал и отправил.

это не вызвало конвейер

Затем я внес изменение в одно из представлений в master, зафиксировал и отправил.

это также не вызвало конвейер

Итак, как я могу настроить конвейеры DevOps Azure для сохранения файла azure-pipelines.yml в ветке, отличной от master, и инициирования изменений на master?

1 Ответ

0 голосов
/ 09 октября 2019

В соответствии с вашими операционными шагами и конфигурацией YAML сборка не может быть запущена разумно.

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

При первом действии вы удаляете некоторые файлы из ветви DEVOPS. Затем зафиксируйте и вставьте его в remotes/Origin. Но, как вы определили в конвейере, это действие не может запустить этот конвейер. Это как и ожидалось.

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

НО , может ли сборка выполняться, зависит от того, существует yml или нет. Да, вы внесли некоторые изменения в основную ветку. Но без файла yml сборка не может быть успешно запущена. Вот почему вы столкнулись с тем, что конвейер не был запущен.

И та же причина для вашего следующего действия.


Как настроить конвейеры DevOps Azure для хранения Azure-Файл pipelines.yml в ветви, отличной от master, и запуск изменений на master?

До сих пор этого не могло быть достигнуто, если тип определения вашей сборки равен YAML .

Для конвейера, тип определения которого YAML, для достижения ожидаемого результата файл yml с такой же конфигурацией также должен храниться в соответствующих ветвях, которые определены в конвейере.

Возьмите пример, который вы описали в вопросе. Если вы сохраняете только файл yml в ветке DEVOPS, независимо от того, какие изменения внесены в ветку master, сборка никогда не будет запускаться.

Для достижения триггера на изменениях мастера этот файл yml также должен храниться в главной ветви. Таким образом, предварительное условие конвейера сборки, тип определения которого является YAML, может быть запущено: файл yml также должен существовать в соответствующих ветвях, если он указан в определении yml. Это потому, что этот тип сборки может работать на основе yml из исходных файлов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...