From c66d94fea433e2f665bd7eaf564782edb9aa81c8 Mon Sep 17 00:00:00 2001 From: Brett Hewitson Date: Thu, 29 Dec 2022 15:18:29 +1000 Subject: [PATCH] pipeline file changes --- ...mantic-versioning-to-assembyinfo-files.yml | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/.azure/pipelines/apply-semantic-versioning-to-assembyinfo-files.yml b/.azure/pipelines/apply-semantic-versioning-to-assembyinfo-files.yml index ea47b345..5517f7c5 100644 --- a/.azure/pipelines/apply-semantic-versioning-to-assembyinfo-files.yml +++ b/.azure/pipelines/apply-semantic-versioning-to-assembyinfo-files.yml @@ -20,4 +20,37 @@ steps: [int]$PatternExpectedVersionNumbers = 4 [int]$VersionNumbersInVersion = 4 + Function Get-VersionString($numberOfVersions, $extractedBuildNumbers) { + return [string]::Join('.',($extractedBuildNumbers | select -First ($numberOfVersions))) + } + + if ($BuildNumber -match $Pattern -ne $true) { + Write-Host "Could not extract a version from [$BuildNumber] using pattern [$Pattern]" + exit 2 + } + + # Set version variables + $extractedBuildNumbers = @($Matches[0].Split(([char[]]$PatternSplitCharacters))) + if ($extractedBuildNumbers.Length -ne $PatternExpectedVersionNumbers) { + Write-Host "The extracted build number $($Matches[0]) does not contain the expected $PatternExpectedVersionNumbers elements" + exit 2 + } + + $version = Get-VersionString -numberOfVersions $VersionNumbersInVersion -extractedBuildNumbers $extractedBuildNumbers + $fileVersion = Get-VersionString -numberOfVersions $VersionNumbersInVersion -extractedBuildNumbers $extractedBuildNumbers + Write-Host "Using version $version and file version $fileVersion" + + # iterate the search path (and sub directories) looking for files that match the search filter + Get-ChildItem -Path $PathToSearch -Filter $SearchFilter -Recurse | % { + Write-Host " -> Checking $($_.FullName)" + + # remove the read-only bit on the file + Set-ItemProperty $_.FullName -name IsReadOnly -value $false + + # run the regex replace + $content = Get-Content $_.FullName + #$content = Replace-Version -content $content -version $version -attribute 'AssemblyVersion' + #$content = Replace-Version -content $content -version $fileVersion -attribute 'AssemblyFileVersion' + $content | Set-Content $_.FullName -Encoding UTF8 + } pwsh: true