You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitLab CI/CD流水线合并主分支后仅执行测试任务的问题

解决GitLab CI/CD主分支流水线不执行后续任务的问题

常见问题排查与修复

1. 检查任务触发规则配置

wheel_build、doc_build、release任务未执行,大概率是触发规则未覆盖主分支的所有触发场景(MR合并后的推送、手动触发)。

错误示例(限制过严)

如果规则仅限定push事件,手动触发或部分MR合并场景会被排除:

wheel_build:
  rules:
    - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
      when: on_success
      only: [push] # 仅允许push事件,手动触发会被拦截

正确修改方案

移除不必要的事件限制,或明确包含所有需要的事件类型:

wheel_build:
  rules:
    - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
      when: on_success
      # 若需明确指定事件,可添加:events: [push, manual]

如果使用only/except语法,确保包含主分支和手动触发场景:

wheel_build:
  only:
    - $CI_DEFAULT_BRANCH
    - triggers # 支持手动触发

2. 确认变量有效性

部分流水线类型(如合并请求流水线)中,CI_COMMIT_BRANCH变量为空,导致分支判断不成立。可调整规则覆盖MR合并场景:

wheel_build:
  rules:
    # 匹配主分支直接推送
    - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
    # 匹配合并到主分支的MR流水线(可选)
    - if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH'
      when: on_success

3. 检查任务依赖关系

确保后续任务依赖的测试任务已成功执行,且依赖配置正确:

wheel_build:
  needs: [test_task1, test_task2] # 替换为你的测试任务名称
  rules:
    - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'

4. 验证流水线上下文

手动触发时,确认选择主分支且未勾选"跳过作业";在流水线变量面板查看CI_COMMIT_BRANCH与CI_DEFAULT_BRANCH的实际值,确保二者相等。

内容的提问来源于stack exchange,提问作者arc_lupus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 17:12:49