跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
  • 世界
  • 用户
  • 群组
皮肤
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠

乐达

  1. 主页
  2. 团队公告
  3. 基于分支的版本号管理方案

基于分支的版本号管理方案

已定时 已固定 已锁定 已移动 团队公告
1 帖子 1 发布者 16 浏览 1 关注中
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • Z 离线
    Z 离线
    zhongfangxiong
    写于 最后由 编辑
    #1

    基于分支的版本号管理方案

    概述

    NuGet 组件的版本号管理现在根据分支自动选择不同的环境配置文件,实现开发和生产环境的版本号隔离。

    分支与环境映射

    分支类型 环境标识符 说明
    master / main production 生产环境版本号
    develop / next development 开发环境版本号
    feature/* / bugfix/* / fix/* development 功能开发分支,使用开发环境版本号
    hotfix/* production 紧急修复分支,使用生产环境版本号
    其他分支 development 默认使用开发环境版本号

    URL 结构

    下载 Directory.Build.props

    ${SHARED_VERSION_BASE_URL}/${PRODUCT_NAME}/${ENVIRONMENT}/urls.txt
    

    示例:

    • 生产环境:https://version.lodatone.com/StoreManage/production/urls.txt
    • 开发环境:https://version.lodatone.com/StoreManage/development/urls.txt

    更新版本号 API

    ${SHARED_VERSION_BASE_URL}/updateversion/${PRODUCT_NAME}/${COMPONENT_NAME}/${VERSION_ID}/${ENVIRONMENT}
    

    示例:

    • 生产环境:https://version.lodatone.com/updateversion/StoreManage/Loda.Abp.StoreManage.Basic/2855.2026.103.58596/production
    • 开发环境:https://version.lodatone.com/updateversion/StoreManage/Loda.Abp.StoreManage.Basic/2855.2026.103.58596/development

    工作流程

    开发分支推送

    1. 开发者在 feature/TG-1423-discount-bug 分支提交代码
    2. CI 自动判断分支类型 → development
    3. 下载开发环境的 Directory.Build.props
    4. 构建并推送 NuGet 包
    5. 更新开发环境的版本号
    6. 其他开发分支下次构建时自动使用新版本号

    生产分支推送

    1. 代码合并到 master 分支
    2. CI 自动判断分支类型 → production
    3. 下载生产环境的 Directory.Build.props
    4. 构建并推送 NuGet 包
    5. 更新生产环境的版本号
    6. 生产环境的其他项目使用新版本号

    服务端配置

    目录结构

    wwwroot/
    ├── StoreManage/
    │   ├── production/
    │   │   ├── Directory.Build.props
    │   │   ├── urls.txt
    │   │   └── version-numbers/*.props
    │   └── development/
    │       ├── Directory.Build.props
    │       ├── urls.txt
    │       └── version-numbers/*.props
    

    API 端点

    控制器需要支持新的路由格式:

    [HttpGet]
    [Route("{product}/{module}/{version}/{environment}")]
    public IActionResult UpdateVersion(string product, string module, string version, string environment)
    

    优势

    1. 环境隔离:开发和生产环境的版本号互不干扰
    2. 自动化:根据分支自动选择环境,无需手动配置
    3. 灵活性:支持多种分支命名规范
    4. 向后兼容:保持对旧版本 API 的兼容
    1 条回复 最后回复
    0
    回复
    • 在新帖中回复
    登录后回复
    • 从旧到新
    • 从新到旧
    • 最多赞同


    • 登录

    • 登录或注册以进行搜索。
    • 第一个帖子
      最后一个帖子
    0
    • 版块
    • 最新
    • 标签
    • 热门
    • 世界
    • 用户
    • 群组