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 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 } pwsh: true