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

Gitlab CI Monorepo子模块部署:多前端匹配不同UI组件分支

GitLab CI 实现多前端项目搭配不同UI组件分支构建部署

针对你的项目结构,我们可以通过在GitLab CI中定义独立的构建任务,分别为两个前端项目切换对应版本的UI组件子模块,完成构建部署。以下是具体实现方案:

核心配置示例(.gitlab-ci.yml)

stages:
  - build
  - deploy

# 通用模板:子模块初始化与分支切换
.submodule_setup:
  before_script:
    # 初始化所有子模块
    - git submodule init
    # 更新子模块到最新状态
    - git submodule update --remote
    # 配置Git用户名邮箱(避免子模块切换分支时权限问题)
    - git config --global user.name "GitLab CI"
    - git config --global user.email "ci@gitlab.example.com"

# frontend_1 构建部署任务
frontend1_deploy:
  stage: build
  extends: .submodule_setup
  script:
    # 切换ui-components到release/v1分支
    - cd modules/ui-components
    - git checkout release/v1
    - cd ../..
    # 进入frontend_1目录安装依赖并构建
    - cd apps/frontend_1
    - npm install
    - npm run build
    # 这里添加实际部署命令,比如上传到服务器/云存储等
    - echo "Deploy frontend_1 to production"
  only:
    - main
  tags:
    - nodejs # 根据你的CI runner标签调整

# frontend_2 构建部署任务
frontend2_deploy:
  stage: build
  extends: .submodule_setup
  script:
    # 切换ui-components到release/v2分支
    - cd modules/ui-components
    - git checkout release/v2
    - cd ../..
    # 进入frontend_2目录安装依赖并构建
    - cd apps/frontend_2
    - npm install
    - npm run build
    # 这里添加实际部署命令,比如上传到服务器/云存储等
    - echo "Deploy frontend_2 to production"
  only:
    - main
  tags:
    - nodejs # 根据你的CI runner标签调整

关键步骤说明

  • 子模块处理:通过git submodule init和git submodule update初始化拉取子模块代码,进入ui-components目录切换到指定分支,确保前端项目使用对应版本的UI组件。
  • 任务隔离:为两个前端项目分别定义独立CI任务,各自处理对应的UI组件分支切换和构建流程,避免相互干扰。
  • 触发条件:only: - main确保只有主分支代码提交时才触发构建部署,可根据需求调整触发分支规则。
  • 部署扩展:在script末尾替换echo命令为实际部署逻辑,比如用scp上传构建产物到服务器、调用云平台部署API等。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 13:57:13