Документация CircleCI содержит несколько требований, которым должна соответствовать такая установка:
approval
- это специальный тип задания, доступный только для заданий с клавишей workflow
- Задание
hold
должно быть уникальным именем, не используемым никаким другим заданием.
- Имя задания для удержания является произвольным - например, это может быть
wait
или pause
, если в задании есть ключ type: approval
. > - Все задания, которые должны выполняться после одобренного вручную задания, должны require:
имя этого задания. Обратитесь к deploy: job
в приведенном выше примере.
- Задания выполняются в указанном порядке, пока рабочий процесс не обработает задание с помощью клавиши
type: approval
, за которым следует задание, от которого оно зависит.
Конфигурация должна иметь еще одно задание, которое не настроено выше, и его единственное назначение - остановить выполнение:
// <<< definition of unit_tests, integration_tests and deploy jobs >>>
workflows:
version: 2
build-test-and-deploy:
jobs:
- unit_tests
- integration_tests:
requires:
- unit_tests
- build_images:
requires:
- integration_tests
filters:
branches:
only:
- production
- hold:
type: approval
requires:
- build_images
filters:
branches:
only:
- production
- deploy:
requires:
- hold
filters:
branches:
only:
- production
Суть в том, что задания должны быть настроены как последовательные (deploy
задание требует halt
задание для завершения).