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
Другие вопросы по тегам