Подробная информация, которой вы поделитесь, очень помогает мне понять весь ваш рабочий процесс.
Хотя вы не express слишком ясно поняли, но, да, что ты угадаешь правильно Действие, с которым вы столкнулись, является ожидаемым и разработанным. Причина root в том, что вы используете branch policy
и Build validation
, также включенные в эту политику.
В двух словах, вы используете Триггер запроса на извлечение .
Пояснение :
Обратим внимание на его определение:
Триггеры запроса на извлечение (PR) заставляет сборку выполняться всякий раз, когда открывается запрос на извлечение с одной из указанных целевых ветвей, или , когда изменения передаются в такой запрос на извлечение .
На основе вашего добавленное содержание, ваши разработчики толкают изменения (новый коммит) в открывающий запрос извлечения ( Примечание: Ключевым моментом является то, что запрос вытягивания все еще будет открытие. ) Это относится к рабочей области PR trigger
из-за вышеприведенного определения. Вот почему сборка срабатывает при каждом новом изменении, помещаемом в ветку NewBranch
.
Обойти:
Я согласен с логикой c ответа @ devpro. Но его сценарий не доступен для вашего сценария. Потому что pr
в YAML работают только для репозиториев GitHub и Bitbucket Cloud.
Здесь вы используете репозиторий VSTS и настроили для него политику. Таким образом, вы можете только через конфигурацию политики ветвей , чтобы избежать таких проблем с записью.
На панели проверки сборки вы устанавливаете политику сборки с Automatic
, верно?
Пожалуйста, измените Automatic
на Manual
, также оставьте значение Policy requirement
как Required
.
Теперь соответствующая сборка конвейер не будет запускаться автоматически после нажатия нового коммита, он может быть построен только тогда, когда кто-то запускает его вручную .
За время задержки, которое вы заметили, вы не уверены, я думаю, это произойдет из-за конфликта.
Например, открывается запрос Pull P1
, который объединяется с NewBranch
до Master
. Я фиксирую новое изменение C1
в NewBranch
. НО, это вызывает конфликт. В настоящее время сборка не будет запущена, поскольку изменения фактически не помещаются в PR.
Примечание: Фиксация верна NewBranch
. НО изменения еще не приняты PR, потому что PR обнаруживает конфликт, и вы должны сообщить PR, какие изменения вы хотите сохранить. Только изменения, вставленные в PR, могут работать с триггером PR.
Только разрешенный конфликт, изменения, может быть, я могу сказать, зафиксировать, действительно могут быть приняты и помещены в PR. Затем запускается триггерная сборка.
Это будет задержка периода времени, которую вы заметили.