未验证 提交 f25f6117 编写于 作者: T Tom Meschter 提交者: GitHub

Merge pull request #28721 from tmeschter/LocBlockScript-180719

Add a Jenkins leg to check for loc changes
@echo off
powershell -noprofile -executionPolicy RemoteSigned -file "%~dp0\check-for-loc-changes.ps1" %*
<#
.SYNOPSIS
Checks if a merge will result in changes to .xlf files, and returns a failure
code if true.
.DESCRIPTION
The point of this script is to block changes to localized resources after we've
entered a Loc freeze. It's meant to be run in a CI system prior to merging a PR.
.PARAMETER base
Generally the branch a change will be merged into, but this could also be a
commit or tag.
.PARAMETER head
The commit that will be merged into $base. Again, this can be a branch, tag, or
commit.
#>
[CmdletBinding(PositionalBinding=$false)]
param(
[Parameter(Mandatory=$true)]
[string]$base,
[Parameter(Mandatory=$true)]
[string]$head
)
Set-StrictMode -version 2.0
$ErrorActionPreference="Stop"
try {
. (Join-Path $PSScriptRoot "build-utils.ps1")
Push-Location $repoDir
# Find the merge base, then the list of files that changed since then.
$mergeBase = & git merge-base $base $head
$changedFiles = @(& git diff --name-only $mergeBase $head)
# Filter out everything that isn't a .xlf file.
$changedXlfFiles = @($changedFiles | where { [IO.Path]::GetExtension($_) -eq ".xlf" })
# Fail if there are any changed .xlf files.
$changedXlfFiles | % { Write-Host "$_ has been modified" }
if ($changedXlfFiles.Count -eq 0) {
exit 0
}
else {
exit 1
}
}
catch [exception] {
Write-Host $_
Write-Host $_.Exception
exit 1
}
finally {
Pop-Location
}
\ No newline at end of file
......@@ -258,6 +258,28 @@ commitPullList.each { isPr ->
}
}
// Loc change check
commitPullList.each { isPr ->
// This job blocks PRs with loc changes, so only activate it for PR builds of
// release branches after a loc freeze.
if (isPr
&& (branchName == "dev15.8.x"
|| branchName == "dev15.8.x-vs-deps")) {
def jobName = Utilities.getFullJobName(projectName, "windows_loc_changes", isPr)
def myJob = job(jobName) {
description('Validate that a PR contains no localization changes')
steps {
batchFile(""".\\build\\scripts\\check-for-loc-changes.cmd -base %GIT_BRANCH% -head %GIT_COMMIT%""")
}
}
def triggerPhraseOnly = false
def triggerPhraseExtra = "loc changes"
Utilities.setMachineAffinity(myJob, 'Windows_NT', windowsUnitTestMachine)
addRoslynJob(myJob, jobName, branchName, isPr, triggerPhraseExtra, triggerPhraseOnly)
}
}
JobReport.Report.generateJobReport(out)
// Make the call to generate the help job
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册