Конвейер сборки DevOps Azure. Неудачная сборка все еще развертывается в Azure. - PullRequest
0 голосов
/ 11 октября 2018

Я пытаюсь создать конвейер CI / CD для примера прототипа.Таким образом, я начал достаточно просто для тестирования своей инфраструктуры - я использую почти нетронутый шаблон ASP.NET Framework Web App (нацелен на 4.6.1).Я выполнил следующие шаги:

  • Приложение развернуто в службе приложений Azure.
  • Управление версиями осуществляется с помощью DevOps Azure.
  • Был создан конвейер сборки со следующими задачами, настроен и протестирован, если он выполняется (задачи и их порядок поступают из шаблона).):

Tasks used

  • Параметры развертывания Azure / параметры привязаны к DevOps репозитория, поэтому сборки также отображаются в Azure, ив случае успеха его следует развернуть.
  • Конвейер сборки привязан к правильному хранилищу внутри DevOps
  • Сборки запускаются нажатием на главную ветку

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

И вот где я остался в тупике.Сборки завершаются неудачно, как и ожидалось, и задача «Развертывание службы приложений» пропускается, поскольку задачи сборки перед ней имеют сбой:

Deployment failed

И все же этиРазбитые сборки Все еще развертываются в Azure и на производстве, даже не дожидаясь завершения конвейера.Я проверяю, что изменения действительно произошли с небольшими визуальными обновлениями.

Сборка запускается и завершается в Azure, как только происходит push до того, как конвейер в DevOps будет полностью пройден (или даже запущен, если найден агентзанимает больше времени):

Building on Azure

Built

(DevOps еще не завершен):

And yet the pipeline hasn't finished yet...

Что я здесь не так делаю?Я неправильно понимаю конвейер?Я где-то пропустил шаг настройки?Я потерян.

Редактировать : По просьбе Джоша, вот мой триггер: enter image description here

Редактировать 2.2 Чуть больше пояснений к моим вариантам развертывания в службе приложений в Azure, связанных с комментариями Даниэля:

enter image description here

Это оказалосьвопрос.

Это единственная опция, которую я могу выбрать при привязке своего развертывания к DevOps.Мне не разрешено выбирать конвейер, просто проект и ветку.В уроке, с которым я сравнивал, настройки одинаковы (по крайней мере, в этом меню), но сборка не запускается из репозитория, но ожидает, что конвейер сначала достигнет соответствующего шага, поэтому я не сталЯ считаю, что это виновник.Есть ли какие-то дополнительные настройки, которые я пропустил, чтобы указать, что должен искать конвейер, а не запускать сразу после изменений ветки?

1 Ответ

0 голосов
/ 15 октября 2018

Развертывание, которое вы настроили на портале Azure, связано только с управлением исходным кодом, а не с определением вашей сборки.Поэтому каждый раз, когда вы берете на себя управление исходным кодом, происходят две вещи, которые полностью отключены друг от друга и запускаются параллельно, поскольку они прослушивают один и тот же репозиторий на предмет изменений:

  1. Сборка запускается в конвейере.
  2. Веб-сайт Azure обновляется версией, которую вы только что передали в систему контроля версий, поскольку к ней привязаны параметры развертывания.

Удалите # 2, и ваша проблема исчезнет.Вы устанавливаете Службу приложений, которую хотите обновить, в конвейере, вам не нужны дополнительные хуки в самой Службе приложений.

...