rules
有条件地把作业加入流水线或从中排除。
支持: if、changes、exists、when、allow_failure、needs、variables、interruptible
示例
基于变量的条件
job:
script: echo "job"
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
基于文件变更的条件
job:
script: echo "job"
rules:
- changes:
- src/**/*.rb
- Gemfile.lock
基于文件存在的条件
job:
script: echo "job"
rules:
- exists:
- Dockerfile
设置 when
job:
script: echo "job"
rules:
- when: on_success
通过 rules 设置 allow_failure
job:
script: echo "job"
rules:
- allow_failure: true
通过 rules 设置变量
job:
script: echo "job"
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
variables:
DEPLOY_ENV: production
- variables:
DEPLOY_ENV: staging
通过 rules 设置 interruptible
job:
script: echo "job"
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
interruptible: true
- interruptible: false
通过 rules 添加 needs
build:
stage: build
script: echo "build"
test:
stage: test
script: echo "test"
rules:
- needs:
- build