我的构建团队目前已设置我们的分支名称以遵循约定 Feature_*、Bugfix_*、Hotfix_*、Release_*。进行谷歌搜索时,我看到典型的命名约定使用所有小写字母,其中每个分支类型都使用破折号('-')或文件夹('/')标记,而不是我在这里使用的下划线('_')分隔符。在大多数情况下,我可以在 Gitversion.yml 文件中使用正则表达式,以便 gitversion 可以正确识别分支类型。
但是,发布分支和 GitVersion 工具从分支名称中获取版本号的能力存在问题。这里似乎 Gitversion 工具只能在命名约定匹配release/<version>
或release-<version>
. 但是如果我改为使用Release_<version>
它,它将不会解析分支名称来获取新版本#。我已经问过构建团队我们是否可以在这里切换命名约定,但他们不愿更改命名约定,因为这可能会影响许多其他 repos 及其 Jenkins 配置。
有什么方法可以让 Gitversion 工具知道我的命名约定Release_<version>
并相应地削减版本号 - 无论是使用 Gitversion.yml 还是其他方式?
我已经用正则表达式修改了 GitVersion.yml 来识别发布分支,这在识别什么是发布分支时可以正常工作。但它不会从分支名称解析建议的版本。
我的 GitVersion.yml
mode: ContinuousDelivery
branches:
master:
regex: master
tag: ''
is-release-branch: false
prevent-increment-of-merged-branch-version: true
track-merge-target: false
tracks-release-branches: false
release:
regex: Release_
tag: ''
is-release-branch: true
is-mainline: true
prevent-increment-of-merged-branch-version: true
track-merge-target: false
tracks-release-branches: false
source-branches: ['develop']
feature:
regex: Feature_
is-release-branch: false
prevent-increment-of-merged-branch-version: false
track-merge-target: false
tracks-release-branches: false
pull-request:
regex: (pull|pull\-requests|pr)[/-]
is-release-branch: false
prevent-increment-of-merged-branch-version: false
track-merge-target: false
tracks-release-branches: false
hotfix:
regex: Hotfix_
is-release-branch: false
prevent-increment-of-merged-branch-version: false
track-merge-target: false
tracks-release-branches: false
develop:
regex: develop
mode: ContinuousDeployment
is-release-branch: false
prevent-increment-of-merged-branch-version: false
track-merge-target: true
tracks-release-branches: true
ignore:
sha: []
merge-message-formats: {}
我希望如果我提供 Release_0.99.1 的分支名称,我应该获得 0.99.1 的版本号。而不是获得 0.1.0 的版本号。