diff --git a/.vsts-dotnet-ci.yml b/.vsts-dotnet-ci.yml index 12768a44440..daf200ae88e 100644 --- a/.vsts-dotnet-ci.yml +++ b/.vsts-dotnet-ci.yml @@ -4,7 +4,43 @@ trigger: - vs* jobs: +- job: CheckVersionBumpOnReleaseBranches + displayName: "Check Version Bump On Release Branches" + steps: + - powershell: | + $versionsFile = "eng/Versions.props" + $changedFiles = git diff --name-only HEAD HEAD~1 + $changedVersionsFile = $changedFiles | Where-Object { $_ -eq $versionsFile } + $isInitialCommit = $false + $isVersionBumped = $false + if ($changedVersionsFile -ne $null) { + $difference = git diff HEAD~1 $versionsFile + $changedContent = $difference -join " " + # 'DotNetFinalVersionKind' is expected to be added only during the initial setup of the release branch + $initialCommitPattern = '-\s*\d+\.\d+\.\d+<\/VersionPrefix> \+\s*\d+\.\d+\.\d+<\/VersionPrefix>.*release<\/DotNetFinalVersionKind>' + $isInitialCommit = $changedContent -match $initialCommitPattern + $pattern = '-\s*\d+\.\d+\.(?\d+)<\/VersionPrefix>.* \+\s*\d+\.\d+\.(?\d+)<\/VersionPrefix>' + if (!($isInitialCommit) -and ($changedContent -match $pattern)) { + try { + $previousPatch = [Convert]::ToInt32($Matches.previous) + $currentPatch = [Convert]::ToInt32($Matches.current) + if ($currentPatch -gt $previousPatch) { + $isVersionBumped = $true + } + } catch { + Write-Host "An error occurred during conversion: $_" + } + } + } + + if (!($isInitialCommit -or $isVersionBumped)) { + throw "Hello! I noticed that you're targeting one of our servicing branches. You need to increase the revision version number (the last part) of 'VersionPrefix' in eng/Versions.props." + } + condition: startsWith(variables['System.PullRequest.TargetBranch'], 'vs') + displayName: "Check if patch version is bumped up" + - job: IfOnlyDocumentionChanged + dependsOn: CheckVersionBumpOnReleaseBranches displayName: "Check whether Test Results need to be executed" steps: - powershell: | diff --git a/eng/Versions.props b/eng/Versions.props index b5b7c70308b..ca74b967423 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -2,7 +2,7 @@ - 17.10.4release + 17.10.5release 17.8.3 15.1.0.0 preview