Я пытаюсь создать конвейер CI / CD для примера прототипа. Таким образом, я начал достаточно просто, чтобы протестировать свою инфраструктуру - я использую почти нетронутый шаблон веб-приложения ASP.NET Framework (таргетинг на 4.6.1). Я выполнил следующие шаги:
- Приложение развернуто в службе приложений Azure.
- Его контроль версий размещен в Azure DevOps.
- Был создан, настроен и протестирован конвейер сборки со следующими задачами, если он выполняется (задачи и их порядок взяты из шаблона):
- Параметры / параметры развертывания Azure привязаны к репозиторию DevOps, поэтому сборки также отображаются в Azure и должны быть развернуты там в случае успеха.
- Конвейер сборки привязан к правильному репозиторию внутри DevOps.
- Сборки запускаются нажатием на главную ветку
Следующим шагом было убедиться, что сломанная сборка из-за неудачных тестов или по любой другой причине не развернута в производственной среде в Azure. По этой причине я создал неудачный тест.
И здесь я в тупике. Сборки действительно завершаются сбоем, как и ожидалось, и задача «Развертывание службы приложений» пропускается, потому что задачи сборки, предшествующие ее возникновению, имеют сбой:
Тем не менее, эти неработающие сборки по-прежнему развертываются в Azure и в производственной среде, даже не дожидаясь завершения конвейера. Я проверяю, что изменение действительно произошло, с небольшими визуальными обновлениями.
Сборка начинается и завершается в Azure, как только происходит push, прежде чем конвейер в DevOps будет полностью пройден (или даже запущен, если поиск агента занимает больше времени):
(DevOps еще не закончен):
Что я здесь делаю не так? Я неправильно понимаю конвейер? Я где-то пропустил этап настройки? Я потерялся.
Изменить. По просьбе Джоша, вот и мой триггер:
Изменить 2.2. Еще немного разъяснений по поводу моих вариантов развертывания в моей службе приложений в Azure, связанных с комментариями Дэниела:
Это оказалось проблемой.
Это единственный вариант, который мне разрешено выбирать при привязке моего развертывания к DevOps. Мне не разрешено выбирать конвейер, только проект и ветвь. В учебнике, с которым я сравнивал, настройки такие же (по крайней мере, в этом меню), но сборка не запускается из репозитория, но ожидает, что конвейер сначала достигнет соответствующего шага, поэтому я не т считал это виновником. Есть ли какие-то дополнительные настройки, которые я пропустил, чтобы указать, что он должен искать конвейер, а не запускать сразу после изменения ветки?