【问题标题】:Does GitVersion support Mainline mode but with a develop branch?GitVersion 是否支持 Mainline 模式但具有开发分支?
【发布时间】:2021-01-04 21:13:42
【问题描述】:

我们使用 Mainline 模式,因此我们不必将每个合并标记为 master。但我们使用“develop”分支(源自“master”)和“feature”分支(源自“develop”)。

但是,我们的“功能”分支似乎基于“主”分支而不是“开发”分支计算版本。是否有一个简单的修复方法可以使“功能”分支基于“开发”分支的版本,以便他们的版本反映他们正在为下一个次要版本工作?

我们会自动将基于“开发”构建的预发布版本部署到我们的开发和质量保证环境中。 我们自动将从“主”构建的稳定版本部署到我们的暂存环境(然后手动触发它们部署到生产环境)。

GitVersion 是否支持以下场景:

  • 将 develop 合并到 master 会生成一个没有标记的稳定版本 (0.1.0)
  • 将功能分支合并到开发中会生成我们正在开发的下一个次要版本的预发布版本 (0.2.0-alpha0002)
  • 功能分支从开发分支出来,并具有我们正在努力的下一个次要版本 (0.2.0-jira-123-0004)

我们想要这样:

  • 主 (0.1.0)
    • 开发 (0.2.0-alpha0002)
      • 功能(0.2.0-jira-1234-0004)

但是却得到了这个:

  • 主 (0.1.0)
    • 开发 (0.2.0-alpha0002)
      • 功能(0.1.1-jira-1234-0004)
mode: MainLine
branches: {}
ignore:
  sha: []

我已经为此苦苦挣扎了一个星期。我已经阅读了文档,甚至下载了源代码。

我尝试了几种mode, is-mainline, source-branches 等的组合,但总是以版本冲突告终。

mode: MainLine
branches:
  develop:
    is-mainline: true
    is-source-branch-for: ['feature']
  feature:
    increment: Minor
    source-branches: ['develop']
ignore:
  sha: []

似乎让 GitVersion 预测开发和功能分支的下一个稳定版本的唯一方法是使用 ContinuousDeployment 模式并在 master 上标记提交。

【问题讨论】:

    标签: gitversion


    【解决方案1】:

    这解决了我的问题:

    mode: Mainline
    branches:
      feature:
        regex: ^feature?[/-]
        increment: Minor
      hotfix:
        tag: 'hotfix-{BranchName}'
    ignore:
      sha: []
    merge-message-formats: {}
    

    【讨论】:

      猜你喜欢
      • 2016-01-27
      • 2020-05-12
      • 2015-09-15
      • 1970-01-01
      • 2018-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多