GitLab CI develop分支流水线被跳过且手动触发失败求助
问题原因
你的流水线被跳过是因为workflow规则里使用的自定义变量COMMIT_BRANCH在workflow执行阶段还未完成赋值。GitLab CI的workflow是整个流水线的入口规则,执行优先级高于自定义变量的定义,所以判断$COMMIT_BRANCH == "develop"时,这个变量还没被赋值为CI_COMMIT_BRANCH的值,导致条件不成立,流水线直接被过滤掉。
修复方案
直接在workflow规则中使用GitLab预定义变量CI_COMMIT_BRANCH,无需自定义变量中转,修改后的配置如下:
# List of stages for jobs, and their order of execution stages: - validate - build workflow: rules: - if: $CI_COMMIT_BRANCH == "develop" when: always validate-job: stage: validate script: - echo "Validated" build-job: stage: build ##some job actions script: - echo "t" # rules: # - if: $CI_COMMIT_REF_NAME =~ /develop\/.*$/ # when: always
额外说明
- 预定义变量
CI_COMMIT_BRANCH由GitLab自动注入,代表当前流水线运行的分支名,无需手动赋值。 - 如果后续需要针对不同分支配置流水线,直接基于
CI_COMMIT_BRANCH或CI_COMMIT_REF_NAME编写规则即可,后者支持标签等非分支场景。
内容的提问来源于stack exchange,提问作者rahulchawla
相关产品推荐
相关产品推荐

