DevOps Azure. Можно ли запланировать выпуск на определенный день и время?

Я использую конвейеры Azure-DevOps Release для автоматизации развертываний.

Я хотел бы запланировать создание релиза на определенную дату и время.

Но согласно скриншоту ниже, могут быть выбраны только дни недели. И вы не можете указать триггер только один раз.

Это проблема, потому что триггер будет вызывать выпуск каждую неделю в указанные дни, и мы должны будем помнить, что нужно отключать триггер после каждого выпуска, пока мы не будем готовы к выпуску снова.

Возможно ли с текущей функциональностью в VSTS установить конкретную дату и выпустить только один раз?

Возможный обходной путь?

Пример запуска триггера

6 ответов

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

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

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

Снимок экрана с выпусками Azure Devops

Предварительное развертывание Azure Devops

Я нашел очень простой способ добиться одноразовых запланированных выпусков.

Просто используйте инструмент VSTS CLI на рынке...

https://marketplace.visualstudio.com/items?itemName=ms-vsts.cli

Он опубликован MS, и запускать сборки и релизы из командной строки очень просто.

Просто используйте планировщик задач.

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

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

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

Мы достигли этого с помощью Microsoft Flow. Zapier не поддерживает запуск релизов.

Мы устанавливаем триггер для потока как начало события календаря Google (можно использовать O365 и т. Д.) Со словами "Prod Release" или "Test Release". В зависимости от названия события у нас есть поток, определяющий запуск. У нас также есть поток, отправляющий сообщение на наш канал Slack, уведомляющее нас о том, что выпуск начался / завершился. Это действительно хорошо работает.

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

Я был разочарован тем, что в DevOps не было этой встроенной функции, но, честно говоря, этот рабочий процесс, вероятно, лучше, чем то, что они создали бы.

Очень жаль, что Zapier не поддерживает это, поскольку это единственная причина, по которой мы используем Microsoft Flow.

Другие вопросы по тегам