GitLab CI:如何结合rules与develop分支触发所有任务?
解决GitLab CI中develop分支始终触发所有Trigger任务的配置方法
你只需要给每个trigger任务的rules数组新增一条分支匹配规则,并且放在原有changes规则的前面(GitLab CI的rules是按顺序匹配,匹配到第一条符合规则就停止判断)。修改后的完整配置如下:
stages: - triggers # Trigger 1 trigger_1: stage: triggers trigger: include: - local: path/to/1/.gitlab-ci.yml rules: - if: '$CI_COMMIT_BRANCH == "develop"' when: always - changes: - path/to/1/* # Trigger 2 trigger_2: stage: triggers trigger: include: - local: path/to/2/.gitlab-ci.yml rules: - if: '$CI_COMMIT_BRANCH == "develop"' when: always - changes: - path/to/2/*
配置说明:
if: '$CI_COMMIT_BRANCH == "develop"':判断当前构建的分支是否为developwhen: always:只要分支匹配develop,就强制触发该任务,不受文件变更条件影响- 原有
changes规则保留:当分支不是develop时,仅在指定路径文件发生变更时才触发任务
这样就实现了需求:develop分支下所有trigger任务都会自动触发,其他分支则保持原有的文件变更触发逻辑。
内容的提问来源于stack exchange,提问作者maciekozak
相关产品推荐
相关产品推荐

