GitVersion 构建元数据未正确递增
GitVersion Build Metadata is not incrementing properly
我正在为 AzureDevOps 使用 Gitversion Task 5.1.2。
我的分支策略是 GitFlow。
来自开发分支的输出:
Base version used: Git tag '3.0.0-beta.5': 3.0.0-beta.5 with commit count source 35fb4fe5e51526375e94f61dfc3cca421d235c11 (Incremented: 3.0.0-beta.6)
我期待 3.0.0-beta.6,从上面的行我可以看到它正确计算了元数据,到目前为止还不错,但最后,更新号是 3.0.0-beta。 1、如下图
INFO [11/27/19 19:13:42:97] 1 commits found between 35fb4fe5e51526375e94f61dfc3cca421d235c11 and c6bf7b9b86727f1fcd944dc32d7e34be57e4c0cc
INFO [11/27/19 19:13:43:00] Begin: Creating dictionary
INFO [11/27/19 19:13:43:01] End: Creating dictionary (Took: 8.32ms)
INFO [11/27/19 19:13:43:02] Begin: Storing version variables to cache file D:\a\s\.git\gitversion_cache[=11=]DA5D62C7623C962136858D6D06616CC294FEB91.yml
INFO [11/27/19 19:13:44:07] End: Storing version variables to cache file D:\a\s\.git\gitversion_cache[=11=]DA5D62C7623C962136858D6D06616CC294FEB91.yml (Took: 1,053.64ms)
INFO [11/27/19 19:13:44:43] Applicable build agent found: 'VsoAgent'.
Executing GenerateSetVersionMessage for 'VsoAgent'.
Executing GenerateBuildLogOutput for 'VsoAgent'.
INFO [11/27/19 19:13:44:45] Updating assembly info files
INFO [11/27/19 19:13:44:47] Found 1 files
##[section]Async Command Start: Update Build Number
Update build number to 3.0.0-beta.1 for build 4043
我的GitVersion.yml
mode: ContinuousDelivery
branches:
master:
regex: master
tag: ''
release:
regex: releases?[/-]
tag: rc
feature:
regex: features?[/-]
tag: alpha
develop:
regex: dev(elop)?(ment)?$
mode: ContinuousDeployment
tag: beta
ignore:
sha: []
merge-message-formats: {}
我不明白为什么?
有人可以帮我吗?
问题是当分支 release/2.2.0
合并回开发时,在 GitVersion.yml 中有 next-version: 3.0.0
标记并且提交计数为 5。
所以 GitVersion 创建了构建版本号 3.0.0.beta.5。到目前为止,还不错,但是这次合并以某种方式重置了提交计数。
在下一个 pull request 中,结果是,尽管不再有 next-version: 3.0.0
标签,但已经有一个标签 3.0.0.beta.5 并且它计算正确increment 之前,GitVersion 选择 3.0.0 作为版本号并使用提交计数添加元数据 beta.1,创建 Update build number to 3.0.0-beta.1
我的方法是按如下方式更改 GitVersion.yml 文件:
next-version: 3.1.0
mode: ContinuousDelivery
branches:
master:
regex: master
tag: ''
increment: Patch
prevent-increment-of-merged-branch-version: true
track-merge-target: false
tracks-release-branches: false
is-release-branch: false
release:
tag: rc
tracks-release-branches: false
is-release-branch: true
develop:
tag: beta
increment: Minor
tracks-release-branches: true
is-release-branch: false
ignore:
sha: []
merge-message-formats: {}
我使用:
next-version 3.1.0
=> 强制下一次构建创建标签
3.1.0.beta.2 而不是 3.0.0.beta.2。事已至此,重回正轨。
increment
=> 告诉 GitVersion 在每个版本中增加哪一部分
分支,发布默认为none;
tracks-release-branches
=> 告诉 GitVersion 分支是或是
不是 Gitflow 策略中的 develop 分支
is-release-branch
=> 告诉 GitVersion 分支是或不是
Gitflow 策略中的发布分支
我正在为 AzureDevOps 使用 Gitversion Task 5.1.2。
我的分支策略是 GitFlow。
来自开发分支的输出:
Base version used: Git tag '3.0.0-beta.5': 3.0.0-beta.5 with commit count source 35fb4fe5e51526375e94f61dfc3cca421d235c11 (Incremented: 3.0.0-beta.6)
我期待 3.0.0-beta.6,从上面的行我可以看到它正确计算了元数据,到目前为止还不错,但最后,更新号是 3.0.0-beta。 1、如下图
INFO [11/27/19 19:13:42:97] 1 commits found between 35fb4fe5e51526375e94f61dfc3cca421d235c11 and c6bf7b9b86727f1fcd944dc32d7e34be57e4c0cc
INFO [11/27/19 19:13:43:00] Begin: Creating dictionary
INFO [11/27/19 19:13:43:01] End: Creating dictionary (Took: 8.32ms)
INFO [11/27/19 19:13:43:02] Begin: Storing version variables to cache file D:\a\s\.git\gitversion_cache[=11=]DA5D62C7623C962136858D6D06616CC294FEB91.yml
INFO [11/27/19 19:13:44:07] End: Storing version variables to cache file D:\a\s\.git\gitversion_cache[=11=]DA5D62C7623C962136858D6D06616CC294FEB91.yml (Took: 1,053.64ms)
INFO [11/27/19 19:13:44:43] Applicable build agent found: 'VsoAgent'.
Executing GenerateSetVersionMessage for 'VsoAgent'.
Executing GenerateBuildLogOutput for 'VsoAgent'.
INFO [11/27/19 19:13:44:45] Updating assembly info files
INFO [11/27/19 19:13:44:47] Found 1 files
##[section]Async Command Start: Update Build Number
Update build number to 3.0.0-beta.1 for build 4043
我的GitVersion.yml
mode: ContinuousDelivery
branches:
master:
regex: master
tag: ''
release:
regex: releases?[/-]
tag: rc
feature:
regex: features?[/-]
tag: alpha
develop:
regex: dev(elop)?(ment)?$
mode: ContinuousDeployment
tag: beta
ignore:
sha: []
merge-message-formats: {}
我不明白为什么?
有人可以帮我吗?
问题是当分支 release/2.2.0
合并回开发时,在 GitVersion.yml 中有 next-version: 3.0.0
标记并且提交计数为 5。
所以 GitVersion 创建了构建版本号 3.0.0.beta.5。到目前为止,还不错,但是这次合并以某种方式重置了提交计数。
在下一个 pull request 中,结果是,尽管不再有 next-version: 3.0.0
标签,但已经有一个标签 3.0.0.beta.5 并且它计算正确increment 之前,GitVersion 选择 3.0.0 作为版本号并使用提交计数添加元数据 beta.1,创建 Update build number to 3.0.0-beta.1
我的方法是按如下方式更改 GitVersion.yml 文件:
next-version: 3.1.0
mode: ContinuousDelivery
branches:
master:
regex: master
tag: ''
increment: Patch
prevent-increment-of-merged-branch-version: true
track-merge-target: false
tracks-release-branches: false
is-release-branch: false
release:
tag: rc
tracks-release-branches: false
is-release-branch: true
develop:
tag: beta
increment: Minor
tracks-release-branches: true
is-release-branch: false
ignore:
sha: []
merge-message-formats: {}
我使用:
next-version 3.1.0
=> 强制下一次构建创建标签 3.1.0.beta.2 而不是 3.0.0.beta.2。事已至此,重回正轨。increment
=> 告诉 GitVersion 在每个版本中增加哪一部分 分支,发布默认为none;tracks-release-branches
=> 告诉 GitVersion 分支是或是 不是 Gitflow 策略中的 develop 分支is-release-branch
=> 告诉 GitVersion 分支是或不是 Gitflow 策略中的发布分支