Сегодня рассказываем про фичу, которую ждали все, кто хоть раз случайно деплоил на прод не тот релиз в пятницу вечером.
Задачи в рабочем процессе можно поставить на ручное подтверждение — если перед их началом хочется остановиться и проверить результат.
Как подтверждать задачи вручную:
Добавьте
approval: true внутри задачи в workflows, например:
workflows:
deploy:
tasks:
- name: deploy-prod
needs: [build, test]
approval:
timeout: 2h
note: "Проверить свои навыки"
cubes:
- name: deploy-cube
script:
- echo "deploy"
Задачу можно подтвердить или отклонить, а если не принять решение за заданное время, она отменится автоматически. По умолчанию на решение даётся 24 часа, а таймаут и инструкцию можно настроить в
approval.✌️ Небольшой фанфакт: фичу задумывали, чтобы перед опасным действием человек явно подтверждал, что всё в порядке. А на практике особенно актуальными оказались другие сценарии:
🔡 Ревью пулл-реквеста — ставим ручное подтверждение на задачу, чтобы не запускать важные и долгие тесты, пока человек не посмотрит изменения и не решит, что сейчас действительно стоит тратить CI-минуты.
🔡 Деплой из пулл-реквеста — добавляем ручное подтверждение прямо в пулл-реквест и после проверки изменений деплоим новую версию на тестовое окружение.
Кажется, конфиг проспойлерил анонс #cicd_news_week на завтра 🔍
