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

关于.gitlab-ci.yml中&build_project与<<: *build_project的含义咨询

GitLab CI中YAML锚点与引用的含义

在.gitlab-ci.yml里,&build_project和<<: *build_project是YAML语法自带的锚点(Anchor)和合并引用(Merge Reference),核心作用是复用重复配置,减少冗余代码:

  • &build_project:这是定义锚点,相当于给一段YAML代码块打个可复用标记,把这段配置内容“存”起来。你可以把通用的构建步骤、环境变量、镜像配置等做成锚点,比如:

    # 定义锚点,标记通用构建配置
    build_template: &build_project
      image: node:18
      before_script:
        - npm config set registry https://registry.npmmirror.com
        - npm install
      script:
        - npm run build
    
  • <<: *build_project:这是引用并合并锚点内容。*build_project指向之前定义的锚点,<<表示把锚点里的所有键值对合并到当前的YAML块中。比如在deploy任务里复用上面的构建配置:

    deploy_prod:
      stage: deploy
      <<: *build_project  # 合并锚点里的image、before_script、script配置
      script:
        - npm run build  # 这里会覆盖锚点里的script,YAML中后定义的键会覆盖前序内容
        - scp dist/* prod-server:/usr/share/nginx/html/
    

关于你的理解:“将名为build_project的代码块插入到deploy阶段”——这个说法不完全准确。准确来说,是把锚点标记的配置内容合并到deploy阶段的任务中,而非单纯“插入”整个代码块。另外,锚点可以是任意一段YAML内容(比如只是before_script部分),不一定是完整任务;任务属于哪个阶段由stage: deploy指定,锚点仅负责复用配置,和阶段本身无关。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 04:45:40