Gitlab CI/CD:在条件满足时使用多个

Gitlab CI/CD:在条件满足时使用多个,gitlab,devops,gitlab-ci,gitlab-api,cicd,Gitlab,Devops,Gitlab Ci,Gitlab Api,Cicd,我喜欢这个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"

我喜欢这个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
在我的情况下,作业
deploy
自动运行,作业
backup
必须仅在成功完成作业
deploy
时手动运行。但在我的情况下,此配置不起作用,我收到错误消息:

在您的
.gitlab ci.yml
中发现错误:

作业:备份时间应为以下时间之一:

  • 论成功
  • 论失败
  • 总是
  • 手册
  • 耽搁

在我的例子中,如何使用多个
when
选项参数?

基本上不能,因为
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