build\build.ps1: Fixed version updating logic so it works globally for the script
Project: http://git-wip-us.apache.org/repos/asf/lucenenet/repo Commit: http://git-wip-us.apache.org/repos/asf/lucenenet/commit/a593dcb8 Tree: http://git-wip-us.apache.org/repos/asf/lucenenet/tree/a593dcb8 Diff: http://git-wip-us.apache.org/repos/asf/lucenenet/diff/a593dcb8 Branch: refs/heads/master Commit: a593dcb8ebf0f761a71e4129b9f33457d0b6eae3 Parents: 5be649a Author: Shad Storhaug <[email protected]> Authored: Thu Apr 20 05:55:58 2017 +0700 Committer: Shad Storhaug <[email protected]> Committed: Thu Apr 20 05:55:58 2017 +0700 ---------------------------------------------------------------------- build/build.ps1 | 97 ++++++++++++++++++++++++++++------------------------ 1 file changed, 52 insertions(+), 45 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/lucenenet/blob/a593dcb8/build/build.ps1 ---------------------------------------------------------------------- diff --git a/build/build.ps1 b/build/build.ps1 index 71ea307..1081903 100644 --- a/build/build.ps1 +++ b/build/build.ps1 @@ -7,10 +7,10 @@ [string]$test_results_directory = "$release_directory\TestResults" [string]$buildCounter = "" - [string]$packageVersion = "0.0.0" + [string]$packageVersion = Get-Package-Version [string]$version = "0.0.0" [string]$configuration = "Release" - [bool]$backup_files = $true + [bool]$backup_files = $true [string]$common_assembly_info = "$base_directory\src\CommonAssemblyInfo.cs" [string]$copyright_year = [DateTime]::Today.Year.ToString() #Get the current year from the system @@ -38,54 +38,12 @@ task Init -description "This task makes sure the build environment is correctly Write-Error "Could not find dotnet CLI in PATH. Please install the .NET Core 1.1 SDK." } - #If $packageVersion is not passed in, get it from Version.proj - if ([string]::IsNullOrEmpty($packageVersion) -or $packageVersion -eq "0.0.0" -or ![string]::IsNullOrWhiteSpace($env:BuildCounter)) { - #Get the version info - $versionFile = "$base_directory\Version.proj" - $xml = [xml](Get-Content $versionFile) - - $versionPrefix = $xml.Project.PropertyGroup.VersionPrefix - $versionSuffix = $xml.Project.PropertyGroup.VersionSuffix - Write-Host "VersionPrefix: $versionPrefix" -ForegroundColor Yellow - Write-Host "VersionSuffix: $versionSuffix" -ForegroundColor Yellow - - if ([string]::IsNullOrEmpty($buildCounter)) { - #attempt to get MyGet (or TeamCity) build counter environment variable - $buildCounter = "$env:BuildCounter" - } - Write-Host "buildCounter: $buildCounter" - - - if ([string]::IsNullOrWhiteSpace($versionSuffix)) { - # this is a production release - use 4 segment version number 0.0.0.0 - if ([string]::IsNullOrEmpty($buildCounter)) { - $buildCounter = "0" - } - - $packageVersion = "$versionPrefix.$buildCounter" - } else { - # this is a pre-release - use 3 segment version number with (optional) zero-padded pre-release tag - if (![string]::IsNullOrEmpty($buildCounter)) { - $buildCounter = ([Int32]$buildCounter).ToString("00000") - } - - $packageVersion = "$versionPrefix-$versionSuffix$buildCounter" - } - } + $version = Get-Version $packageVersion #Update TeamCity or MyGet with packageVersion Write-Output "##teamcity[buildNumber '$packageVersion']" Write-Output "##myget[buildNumber '$packageVersion']" - #If $version is not passed in, parse it from $packageVersion - if ([string]::IsNullOrEmpty($version) -or $version -eq "0.0.0") { - $version = $packageVersion - if ($version.Contains("-") -eq $true) { - $version = $version.SubString(0, $version.IndexOf("-")) - } - Write-Host "Updated version to: $version" - } - & dotnet.exe --version Write-Host "Base Directory: $base_directory" Write-Host "Release Directory: $release_directory" @@ -194,8 +152,57 @@ task Test -description "This task runs the tests" { } } +function Get-Package-Version() { + #If $packageVersion is not passed in, get it from Version.proj + + #Get the version info + $versionFile = "$base_directory\Version.proj" + $xml = [xml](Get-Content $versionFile) + + $versionPrefix = $xml.Project.PropertyGroup.VersionPrefix + $versionSuffix = $xml.Project.PropertyGroup.VersionSuffix + Write-Host "VersionPrefix: $versionPrefix" -ForegroundColor Yellow + Write-Host "VersionSuffix: $versionSuffix" -ForegroundColor Yellow + + if ([string]::IsNullOrWhiteSpace($buildCounter)) { + #attempt to get MyGet (or TeamCity) build counter environment variable + $buildCounter = "$env:BuildCounter" + } + Write-Host "buildCounter: $buildCounter" + + if ([string]::IsNullOrWhiteSpace($versionSuffix)) { + # this is a production release - use 4 segment version number 0.0.0.0 + if ([string]::IsNullOrWhiteSpace($buildCounter)) { + $buildCounter = "0" + } + + $packageVersion = "$versionPrefix.$buildCounter" + } else { + # this is a pre-release - use 3 segment version number with (optional) zero-padded pre-release tag + if (![string]::IsNullOrWhiteSpace($buildCounter)) { + $buildCounter = ([Int32]$buildCounter).ToString("00000") + } + + $packageVersion = "$versionPrefix-$versionSuffix$buildCounter" + } + return $packageVersion +} + +function Get-Version([string]$packageVersion) { + #If $version is not passed in, parse it from $packageVersion + if ([string]::IsNullOrWhiteSpace($version) -or $version -eq "0.0.0") { + $version = $packageVersion + if ($version.Contains("-") -eq $true) { + $version = $version.SubString(0, $version.IndexOf("-")) + } + } + return $version +} + function Prepare-For-Build([string[]]$projects) { Backup-File $common_assembly_info + + $version = Get-Version $packageVersion Generate-Assembly-Info ` -product $product_name `
