GitLab CI配置中的多个"rules"子句



我的CI配置中有许多规则,还有许多锚点。每项工作多次提及rules:对门楣人来说并不违法,但同一个门楣对测试多个rules:子句是否相加以及按哪个顺序相加没有帮助。

所以问题是,现在我必须在每一份工作中重复一套略有变化的规则。

.build-rules:                      &build-rules
rules:
- if: '$DEPLOY_TAG'
when: never
- if: '$CI_COMMIT_REF_NAME == "master"'
- if: '$CI_PIPELINE_SOURCE == "web"'
- if: '$CI_COMMIT_REF_NAME =~ "/^v[0-9]+.[0-9]+.*$/"'
job_with_changed_rule:
<<:               *build-rules
rules:
- if: '$DEPLOY_TAG'
script:
- do something
job_with_another_rule:
<<:               *build-rules
rules:
- if: '$CI_PIPELINE_SOURCE == "schedule"'
script:
- do something else

在Gitlab 14.3之前,你唯一能做的就是放置extends

但现在您可以使用!reference标记重用其他作业中的规则。

有关更多详细信息,请参阅本文档

最新更新