diff --git a/BuildHelpers/Public/Step-Version.ps1 b/BuildHelpers/Public/Step-Version.ps1 index 7aca28c..f750b6b 100644 --- a/BuildHelpers/Public/Step-Version.ps1 +++ b/BuildHelpers/Public/Step-Version.ps1 @@ -43,7 +43,7 @@ function Step-Version { # Version section to step [Parameter(Position=1)] - [ValidateSet("Major", "Minor", "Build","Patch")] + [ValidateSet("Major", "Minor", "Build", "Patch", "Revision")] [Alias("Type")] [string] $By = "Patch" @@ -54,6 +54,7 @@ function Step-Version { $major = $Version.Major $minor = $Version.Minor $build = $Version.Build + $revision = $Version.Revision switch ($By) { "Major" { $major++ @@ -63,8 +64,12 @@ function Step-Version { "Minor" { $minor++ $build = 0 break } - Default { $build++ + default { $build++ break } + "Revision" { + if ($revision -lt 0) { $revision = 1 } else { $revision++ } + Write-Output (New-Object Version -ArgumentList $major, $minor, $build, $revision).ToString() + return } } Write-Output (New-Object Version -ArgumentList $major, $minor, $build).ToString() diff --git a/Tests/BuildHelpers.Tests.ps1 b/Tests/BuildHelpers.Tests.ps1 index a5b261d..9055928 100644 --- a/Tests/BuildHelpers.Tests.ps1 +++ b/Tests/BuildHelpers.Tests.ps1 @@ -74,11 +74,21 @@ Describe "Get-ProjectName PS$PSVersion" { Describe 'Step-Version' { Context 'By Param' { + It 'Should increment the Revision level' { + $result = Step-Version @Verbose 1.1.1 Revision + $result | Should Be 1.1.1.1 + } + It 'Should increment the Patch level' { $result = Step-Version @Verbose 1.1.1 $result | Should Be 1.1.2 } - + + It 'Should increment the Build level' { + $result = Step-Version @Verbose 1.1.1 + $result | Should Be 1.1.2 + } + It 'Should increment the Minor level and set Patch level to 0' { $result = Step-Version @Verbose 1.1.1 Minor $result | Should Be 1.2.0 @@ -91,6 +101,16 @@ Describe 'Step-Version' { } Context 'By Pipeline' { + It 'Should increment the Revision level' { + $result = [version]"1.1.1" | Step-Version @Verbose -By Revision + $result | Should Be 1.1.1.1 + } + + It 'Should increment the Patch level' { + $result = [version]"1.1.1" | Step-Version @Verbose + $result | Should Be 1.1.2 + } + It 'Should increment the Patch level' { $result = [version]"1.1.1" | Step-Version @Verbose $result | Should Be 1.1.2