故障排查
推送到分支时的两条流水线
如果您在合并请求中获得重复的流水线,您的流水线可能配置为同时为分支和合并请求运行。调整您的流水线配置以避免重复流水线。
在 13.7 及更高版本中,您可以将 workflow:rules
添加到从分支流水线切换到合并请求流水线。
在分支上打开合并请求后,流水线将切换到合并请求流水线。
推送无效 CI/CD 配置文件时的两个流水线
如果将无效的 CI/CD 配置推送到合并请求的分支,则流水线选项卡中会出现两个失败的流水线。一个流水线是失败的分支流水线,另一个是失败的合并请求流水线。
修复配置语法后,不应出现更多失败的流水线。 要查找并修复配置问题,您可以使用:
合并请求流水线被标记为失败,但最新的流水线成功
可以在单个合并请求的 流水线 选项卡中同时拥有分支流水线和合并请求流水线。可能是按配置,或偶然发生。
当使用流水线成功时合并功能并且两种流水线类型都存在时,检查合并请求流水线,而不是分支流水线。
因此,如果合并请求流水线失败,合并请求流水线结果将被标记为不成功,与分支流水线结果无关。
然而:
- 这种情况不强制执行。
- 系统自动确定哪个流水线的结果用来阻止或通过合并请求。
An error occurred while trying to run a new pipeline for this merge request.
当您在合并请求中选择 运行流水线 时,可能会出现此错误,但是该项目不会再启用合并请求流水线。
此错误信息的可能原因为:
- 此项目不再启用合并请求流水线,在 流水线 选项卡中不再有流水线列出,但是您选择 运行流水线。
-
该项目以前启用了合并请求流水线,但是配置被删除。例如:
- 当合并请求创建时,就在
.gitlab-ci.yml
配置中启用了合并请求流水线。 - 在合并请求的 流水线 选项卡中,运行流水线选项是可用的,在这时候选择 运行流水线 不会出现任何错误。
-
.gitlab-ci.yml
文件被更改,删除了合并请求流水线的配置。 - 分支被重新基线,以将更新的配置带入合并请求。
- 现在流水线配置不再支持合并请求流水线,但是您选择 运行流水线 来运行合并请求流水线。
- 当合并请求创建时,就在
如果 运行流水线 可用,但是项目却没有启用合并请求流水线,不要使用此选项。您可以通过推送新提交或重新基线分支来触发新的分支流水线。
Merge blocked: pipeline must succeed. Push a new commit that fixes the failure
message
如果合并请求流水线、合并结果流水线 或 合并列车流水线已经失败或被取消,则会出现此错误。
如果合并请求流水线或合并结果流水线被取消或失败,您可以:
- 通过在合并请求中的流水线选项卡中选择 运行流水线 来重新运行整个流水线。
- 重试失败的作业。如果您重新运行了整个流水线,这一步是不必要的。
- 推送新提交来修复失败。
如果合并列车流水线失败了,您可以:
- 检查失败并确定是否可以使用
/merge
快速操作立即将合并请求添加到列车中。 - 通过在合并请求中的流水线选项卡中选择 运行流水线 来重新运行整个流水线,然后将合并请求再次添加到列车。
- 推送新提交来修复失败,然后将合并请求再次添加到列车。
如果合并列车流水线在合并请求被合并时被取消,而且没有发生失败,那么您可以:
- 将它再次添加到列车中。