mirror of
https://github.com/tribufu/ServerManagers
synced 2026-06-01 09:42:39 +00:00
42 lines
1.6 KiB
YAML
42 lines
1.6 KiB
YAML
parameters:
|
|
- name: ApplicationName
|
|
type: string
|
|
- name: PathToSearch
|
|
type: string
|
|
|
|
steps:
|
|
- task: PowerShell@2
|
|
displayName: Apply Semantic Versioning to AssemblyInfo Files
|
|
inputs:
|
|
targetType: inline
|
|
script: |
|
|
[string]$ApplicationName = ${{parameters.ApplicationName}}
|
|
[string]$PathToSearch = ${{parameters.PathToSearch}}
|
|
[string]$BuildNumber = $(Build.BuildNumber)
|
|
[string]$SearchFilter = 'AssemblyInfo.*'
|
|
|
|
[string]$PatternSplitCharacters = '.'
|
|
[regex]$Pattern = '\d+\.\d+\.\d+\.\d+'
|
|
[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"
|
|
pwsh: true
|