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

GitLab中通过include引入的.pre阶段未执行问题咨询

GitLab流水线.pre阶段通过模板引入不执行的原因及解决方法

这不是Bug,是对GitLab流水线阶段配置优先级规则的理解偏差导致的问题。

GitLab的stages配置遵循主配置覆盖引入模板的规则:当你在主.gitlab-ci.yml中显式定义了stages列表时,它会完全替代所有引入模板中的阶段定义,包括.pre这种特殊阶段。

.pre虽然是GitLab内置的特殊阶段(默认会在所有自定义阶段前执行),但前提是它必须存在于当前生效的stages列表中。你在主配置里只定义了build和test阶段,.pre不在这个列表里,所以模板中指定为.pre的job会被忽略。

解决方法

只需在主.gitlab-ci.yml的stages列表中添加.pre即可:

include:
  - local: "prestage.yml"

stages:
  - .pre  # 加入这个特殊阶段
  - build
  - test

job1:
  stage: build
  script:
    - echo "This job runs in the build stage."
job2:
  stage: test
  script:
    - echo "This job runs in the test stage."

修改后,模板中的first-job就会在所有阶段之前正常执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 15:13:12