DevOps не отменит релиз с ожидающим одобрения перед развертыванием - PullRequest
0 голосов
/ 27 марта 2020

Я настроил конвейер, который развертывается в средах QA и PROD, с одобрением перед развертыванием перед переходом в PROD. Я попытался настроить конвейер таким образом, чтобы в случае отправки другого выпуска до утверждения он отменял предыдущий выпуск в ожидании утверждения. Я использовал «Развернуть последние и отменить другие» в настройках очереди развертывания для первого шага / этапа. Однако, похоже, это не имеет никакого эффекта.

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

К вашему сведению, я уже проверил этот ответ , но, как я уже говорил, не отменяет в промежуточных выпусках (хотя по какой-то причине он работает именно в этом конкретном случае использования для этого OP).

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

Редактировать: Просто чтобы уточнить принятый ответ, было два вопроса. В моих первых прогонах я не проверял Deploy latest and cancel the others на каждом этапе, , так что данный этап не отменялся. Затем, после проверки этой опции, она не работала, потому что Я не позволял конвейеру работать на той же стадии, , скорее, я отменял новый выпуск после того, как увидел, что старый не сразу отменил. У меня сложилось впечатление, что релиз будет отменен немедленно, но только когда новый релиз достигнет той же стадии , старый этап, ожидающий одобрения, будет отменен. Как только я позволил трубопроводу пройти, ожидающий этап одобрения был отменен, как и ожидалось. Таким образом, эта опция, похоже, связана с stage , а не со всем релизом . Просто хотел предоставить дополнительный контекст для ответа.

1 Ответ

1 голос
/ 31 марта 2020

Я подозреваю, что это потому, что он предназначен только для отмены очередей, а не текущих выпусков.

Да, ваш подозреваемый прав. Он может отменять только выпуски, поставленные в очередь, но не текущие.

Кроме того, эта опция все еще работает для меня в настоящее время. Не уверен, как настроить эту опцию на вашей стороне. Для меня я установил Maximum number of parallel deployments как 1, когда выбрана опция Deploy latest and cancel the others.

Тогда вы увидите, что в отмененных выпусках будет отображаться такое сообщение:

enter image description here


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

Если ожидающий выпуск означает тот, который ожидает одобрения, вы все равно можете использовать опцию Deploy latest and cancel the others для достижения этой цели.

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

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