Gitlab CI/CD: использовать несколько при условиях
Мне нравится этот файл конфигурации gitlab ci cd:
image: docker:git
stages:
- develop
- production
default:
before_script:
- apk update && apk upgrade && apk add git curl
deploy:
stage: develop
script:
- echo "Hello World"
backup:
stage: develop
when:
- manual
- on_success
remove:
stage: develop
when:
- delayed
- on_success
start_in: 30 minutes
В моем случае работа выполняется автоматически, а работа
backup
должен запускаться вручную только после успешного завершения задания
deploy
. Но в моем случае эта конфигурация не работает, и я получаю сообщение об ошибке:
Обнаружил ошибки в вашем
.gitlab-ci.yml
:
jobs: резервное копирование, когда должно быть одно из:
- on_success
- on_failure
- всегда
- руководство по эксплуатации
- с задержкой
Как я могу использовать несколько
when
аргументы опции в моем случае?
1 ответ
Решение
В основном вы не можете, потому что
when
не ожидает массива. Вы можете обойти это, хотя с потребностями . Но это решение работает только в том случае, если вы выполняете задания на разных этапах.
image: docker:git
stages:
- deploy
- backup
- remove
deploy:develop:
stage: deploy
script:
- exit 1
backup:develop:
stage: backup
script:
- echo "backup"
when: manual
needs: ["deploy:develop"]
remove:develop:
stage: remove
script:
- echo "remove"
when: delayed
needs: ["backup:develop"]
start_in: 30 minutes