Gitlab中Pipeline语法三
Pipeline语法三
only/except/rules/workflow
only和except
用分支策略来限制jobs构建:
- only 定义哪些分支和标签的git项目将会被job执行
- except定义哪些分支和标签的git项目将不会被job执行
rules 构建规则
- rules允许按顺序评估单个规则,直到匹配并为作业动态提供属性
- rules不能与only/except组合使用
可用规则
- if 如果条件匹配
- changes 指定文件发生变化
- exists 指定文件存在
rules-if使用
variables:
DOMAIN: example.com
codescan:
stage: condescan
tags:
- build
script:
- echo "codescan"
rules:
- if: '$DOMAIN == "example.com"'
when: manual
- when: on_success
rules-changes使用,若果Dockerfile文件发生变化codescan手动执行,若果DOMAIN变量是example.com成功继续执行
codescan:
stage: codescan
tags:
- build
script:
- echo "codescan"
- sleep 5;
rules:
- changes:
- Dockerfile
when: manual
- if: "$DOMAIN == "example.com"'
when: on_success
- when: on_success
exists使用.若果文件存在则继续执行
codescan:
stage: codescan
tags:
- build
script:
- echo "codescan"
- sleep 5;
rules:
- exists:
- Dockerfile
when: on_success
- when: on_failure
workflow-rules管道创建
- 顶级workflow关键字适用于整个管道,并将确定是否创建管道
- when: 可以设置为always或never,如果未提供,默认always
#如果变量是example.com创建管道,否则不创建
variables:
DOMAIN: example.com
workflow:
rules:
- if: '$DOMAIN == "example.com"'
when: always
- when: never