Мне бы хотелось иметь блокирующее ручное действие, которое будет запускать несколько параллельных заданий на следующем этапе.Как мне этого добиться?Например:
- deploy-int выполняется при слиянии
- Конвейер ожидает единственного запуска вручную
- deploy-prd-1 и deploy-prd-2 runпараллельно
Вот что я пробовал:
1
stages:
- deploy-dev
- deploy-prd-1
- deploy-prd-2
deploy-dev:
stage: deploy-dev
script:
- echo deploy-dev
deploy-prd-1:
when: manual
allow_failure: false
stage: deploy-prd-1
script:
- echo deploy-prd-1
deploy-prd-2:
stage: deploy-prd-2
script:
- echo deploy-prd-2
Достигается 1 и 2, но происходит сбой на 3, как deploy-prd-1 и deploy-prd-2 последовательно, а не параллельно
2
stages:
- deploy-dev
- deploy-prd
deploy-dev:
stage: deploy-dev
script:
- echo deploy-dev
deploy-prd-1:
when: manual
allow_failure: false
stage: deploy-prd
script:
- echo deploy-prd-1
deploy-prd-2:
stage: deploy-prd
script:
- echo deploy-prd-2
Это не работает на 2, так как deploy-prd-2 будет запускаться автоматически без ожидания при ручном триггере
3
stages:
- deploy-dev
- deploy-prd
deploy-dev:
stage: deploy-dev
script:
- echo deploy-dev
deploy-prd-1:
when: manual
allow_failure: false
stage: deploy-prd
script:
- echo deploy-prd-1
deploy-prd-2:
when: manual
allow_failure: false
stage: deploy-prd
script:
- echo deploy-prd-2
Это не идеально, так как требует ручного запуска каждого параллельного задания отдельно.
4
stages:
- deploy-dev
- approve
- deploy-prd
deploy-dev:
stage: deploy-dev
script:
- echo deploy-dev
approve:
when: manual
allow_failure: false
deploy-prd-1:
stage: deploy-prd
script:
- echo deploy-prd-1
deploy-prd-2:
stage: deploy-prd
script:
- echo deploy-prd-2
Это моя попытка установить «ворота» вручную, но gitlab отклоняет файл с Error: jobs:approve script can't be blank
.Я могу установить no-op как script: [":"]
, но теперь gitlab будет вращать контейнер, чтобы ничего не делать, что тратит время и ресурсы.