故障排查

推送到分支时的两条流水线

如果您在合并请求中获得重复的流水线,您的流水线可能配置为同时为分支和合并请求运行。调整您的流水线配置以避免重复流水线

在 13.7 及更高版本中,您可以将 workflow:rules 添加到从分支流水线切换到合并请求流水线。 在分支上打开合并请求后,流水线将切换到合并请求流水线。

推送无效 CI/CD 配置文件时的两个流水线

如果将无效的 CI/CD 配置推送到合并请求的分支,则流水线选项卡中会出现两个失败的流水线。一个流水线是失败的分支流水线,另一个是失败的合并请求流水线。

修复配置语法后,不应出现更多失败的流水线。 要查找并修复配置问题,您可以使用:

合并请求流水线被标记为失败,但最新的流水线成功

可以在单个合并请求的 流水线 选项卡中同时拥有分支流水线和合并请求流水线。可能是按配置,或偶然发生。

当使用流水线成功时合并功能并且两种流水线类型都存在时,检查合并请求流水线,而不是分支流水线。

因此,如果合并请求流水线失败,合并请求流水线结果将被标记为不成功,与分支流水线结果无关。

然而:

  • 这种情况不强制执行。
  • 系统自动确定哪个流水线的结果用来阻止或通过合并请求。

An error occurred while trying to run a new pipeline for this merge request.

当您在合并请求中选择 运行流水线 时,可能会出现此错误,但是该项目不会再启用合并请求流水线。

此错误信息的可能原因为:

  • 此项目不再启用合并请求流水线,在 流水线 选项卡中不再有流水线列出,但是您选择 运行流水线
  • 该项目以前启用了合并请求流水线,但是配置被删除。例如:

    1. 当合并请求创建时,就在 .gitlab-ci.yml 配置中启用了合并请求流水线。
    2. 在合并请求的 流水线 选项卡中,运行流水线选项是可用的,在这时候选择 运行流水线 不会出现任何错误。
    3. .gitlab-ci.yml 文件被更改,删除了合并请求流水线的配置。
    4. 分支被重新基线,以将更新的配置带入合并请求。
    5. 现在流水线配置不再支持合并请求流水线,但是您选择 运行流水线 来运行合并请求流水线。

如果 运行流水线 可用,但是项目却没有启用合并请求流水线,不要使用此选项。您可以通过推送新提交或重新基线分支来触发新的分支流水线。

Merge blocked: pipeline must succeed. Push a new commit that fixes the failure message

如果合并请求流水线、合并结果流水线合并列车流水线已经失败或被取消,则会出现此错误。

如果合并请求流水线或合并结果流水线被取消或失败,您可以:

  • 通过在合并请求中的流水线选项卡中选择 运行流水线 来重新运行整个流水线。
  • 重试失败的作业。如果您重新运行了整个流水线,这一步是不必要的。
  • 推送新提交来修复失败。

如果合并列车流水线失败了,您可以:

  • 检查失败并确定是否可以使用 /merge 快速操作立即将合并请求添加到列车中。
  • 通过在合并请求中的流水线选项卡中选择 运行流水线 来重新运行整个流水线,然后将合并请求再次添加到列车。
  • 推送新提交来修复失败,然后将合并请求再次添加到列车。

如果合并列车流水线在合并请求被合并时被取消,而且没有发生失败,那么您可以:

  • 将它再次添加到列车中。