I'm trying to setup GitVersion to handle our project's semantic versioning (GitFlow), but it's not incrementing automatically as I'm expecting. I'm also struggling with reading the project's documentation, it's not the easiest to follow.
Basically we're hoping to setup a versioning system with Major.Minor.Patch convention, where we increment Major manually, Minor automatically when a release branch gets merged into master, and Patch automatically when a feature branch gets merged into develop.
Here is my current GitVersion.yml
mode: ContinuousDeployment
branches:
feature:
increment: Patch
regex: feature?[/-]
release:
increment: Minor
regex: release?[/-]
develop:
regex: develop$
master:
regex: master$
ignore:
sha: []
Also to test it I wrote a small ruby script to speed up the tedious process. I included it just to make sure I'm using GitVersion and GitFlow in the intended way.
require "git"
def new_feature_branch i
g = Git.open(Dir.pwd)
branch_name = "feature/number-#{i}"
g.checkout("develop")
g.branch(branch_name).checkout
open('README.md', 'a') do |f|
f.puts "\r#{i}"
end
g.add("README.md")
g.commit("##{i}")
g.branch("develop").checkout
g.merge(branch_name)
g.branch(branch_name).delete
print(`gitversion`)
end
new_feature_branch(ARGV[0])
Output of gitversion
{
"Major":1,
"Minor":1,
"Patch":0,
"PreReleaseTag":"alpha.39",
"PreReleaseTagWithDash":"-alpha.39",
"PreReleaseLabel":"alpha",
"PreReleaseNumber":39,
"WeightedPreReleaseNumber":39,
"BuildMetaData":"",
"BuildMetaDataPadded":"",
"FullBuildMetaData":"Branch.develop.Sha.57a536a5c6b6abb4313a2067468413447cb49c86",
"MajorMinorPatch":"1.1.0",
"SemVer":"1.1.0-alpha.39",
"LegacySemVer":"1.1.0-alpha39",
"LegacySemVerPadded":"1.1.0-alpha0039",
"AssemblySemVer":"1.1.0.0",
"AssemblySemFileVer":"1.1.0.0",
"FullSemVer":"1.1.0-alpha.39",
"InformationalVersion":"1.1.0-alpha.39+Branch.develop.Sha.57a536a5c6b6abb4313a2067468413447cb49c86",
"BranchName":"develop",
"Sha":"57a536a5c6b6abb4313a2067468413447cb49c86",
"ShortSha":"57a536a",
"NuGetVersionV2":"1.1.0-alpha0039",
"NuGetVersion":"1.1.0-alpha0039",
"NuGetPreReleaseTagV2":"alpha0039",
"NuGetPreReleaseTag":"alpha0039",
"VersionSourceSha":"27938c50fc6f364eff52bccec8dbc10297bce87b",
"CommitsSinceVersionSource":39,
"CommitsSinceVersionSourcePadded":"0039",
"CommitDate":"2019-10-28"
}
The problem I'm expecting the Patch number to increment each time I merge a feature branch into develop but that isn't happening.
There are still some minor issues but this config setting is working much more as I intended.
mode: Mainline
tag-prefix: '[vV]'
commit-message-incrementing: MergeMessageOnly
branches:
feature:
regex: feature?[/-]
source-branches: ['develop']
release:
increment: Minor
regex: release?[/-]
develop:
is-mainline: true
increment: Patch
regex: develop$
master:
regex: master$
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With