[CI][VSTS] Add a poor mans debugger. (#10495)

This commit is contained in:
Manuel de la Pena 2021-01-22 10:08:51 -05:00 коммит произвёл GitHub
Родитель 335ac8fe15
Коммит 5dbc349c0b
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
1 изменённых файлов: 39 добавлений и 32 удалений

Просмотреть файл

@ -129,11 +129,13 @@ steps:
# we have a number of scripts that require to be executed from the top of the src, rather
# than keeping track of the location of the script, we create two env vars that can be used to
# get to the top
$configVars = @{} # var name/value pair, later print twice, to process and debug
$xamTop = "$(Build.SourcesDirectory)/xamarin-macios/"
Write-Host "##vso[task.setvariable variable=XAM_TOP]$xamTop"
$configVars.Add("XAM_TOP", $xamTop)
$maccoreTop = "$(Build.SourcesDirectory)/maccore/"
Write-Host "##vso[task.setvariable variable=MACCORE_TOP]$maccoreTop"
$configVars.Add("MACCORE_TOP", $maccoreTop)
$buildReason = "$(Build.Reason)"
$buildSourceBranchName = "$(Build.SourceBranchName)"
@ -142,82 +144,87 @@ steps:
# a branch in origin
if ($buildReason -eq "PullRequest" -or (($buildReason -eq "Manual") -and ($buildSourceBranchName -eq "merge")) ) {
Write-Host '##vso[task.setvariable variable=IsPR;isOutput=true]False'
$configVars.Add("IsPR", "True")
if ($Env:BuildPackage -eq "True") {
Write-Host '##vso[task.setvariable variable=BuildPkgs;isOutput=true]True'
$configVars.Add("BuildPkgs", "True")
} else {
Write-Host '##vso[task.setvariable variable=BuildPkgs;isOutput=true]False'
$configVars.Add("BuildPkgs", "False")
}
# interesting case, we have build-pkg and skip-pkg... if that is the case, we build it, but we set a warning
if ($Env:BuildPackage -eq "True" -and $Env:SkipPackages -eq "True") {
Write-Host "##vso[task.logissue type=warning]'build-package' and 'skip-packages' are both present. Building packages in case of a doubt."
Write-Host "##vso[task.setvariable variable=BuildPkgs;isOutput=true]True"
$configVars.Add("BuildPkgs", "True")
}
# if we want to have device tests, we do need the pkgs so that we can fwd them to the device tests
if ($Env:TriggerDeviceTests -eq "True") {
Write-Host "##vso[task.setvariable variable=BuildPkgs;isOutput=true]True"
Write-Host "##vso[task.setvariable variable=RunDeviceTests;isOutput=true]True"
$configVars.Add("BuildPkgs", "True")
$configVars.Add("RunDeviceTests", "True")
}
if ($Env:SkipNugets -eq "True") {
Write-Host "##vso[task.setvariable variable=BuildNugets;isOutput=true]False"
$configVars.Add("BuildNugets", "False")
} else {
Write-Host "##vso[task.setvariable variable=BuildNugets;isOutput=true]True"
$configVars.Add("BuildNugets", "True")
}
if ($Env:SkipSigning -eq "True") {
Write-Host "##vso[task.setvariable variable=SignPkgs;isOutput=true]False"
$configVars.Add("SignPkgs", "False")
} else {
Write-Host "##vso[task.setvariable variable=SignPkgs;isOutput=true]True"
$configVars.Add("SignPkgs", "True")
}
if ($Env:SkipExternalTests -eq "True") {
Write-Host "##vso[task.setvariable variable=RunExternalTests;isOutput=true]False"
$configVars.Add("RunExternalTests", "False")
} else {
Write-Host "##vso[task.setvariable variable=RunExternalTests;isOutput=true]True"
$configVars.Add("RunExternalTests", "True")
}
if ($Env:SkipPackagedXamarinMacTests -eq "True") {
Write-Host "##vso[task.setvariable variable=RunMacTests;isOutput=true]False"
$configVars.Add("RunMacTests", "False")
} else {
Write-Host "##vso[task.setvariable variable=RunMacTests;isOutput=true]True"
$configVars.Add("RunMacTests", "True")
}
if ($Env:SkipPublicJenkins -eq "True") {
Write-Host "##vso[task.setvariable variable=SkipPublicJenkins;isOutput=true]True"
$configVars.Add("SkipPublicJenkins", "True")
} else {
Write-Host "##vso[task.setvariable variable=SkipPublicJenkins;isOutput=true]False"
$configVars.Add("SkipPublicJenkins", "False")
}
Write-Host "##vso[task.setvariable variable=RunSampleTests;isOutput=true]$Env:RunSampleTests"
Write-Host "##vso[task.setvariable variable=RunInternalTests;isOutput=true]$Env:RunInternalTests"
$configVars.Add("RunSampleTests", $Env:RunSampleTests)
$configVars.Add("RunInternalTests", $Env:RunInternalTests)
} else {
# set the defaults, all the things! o/
Write-Host "##vso[task.setvariable variable=IsPR;isOutput=true]False"
$configVars.Add("IsPR", "False")
# build pkg, nugets and sign them
Write-Host "##vso[task.setvariable variable=BuildPkgs;isOutput=true]True"
Write-Host "##vso[task.setvariable variable=BuildNugets;isOutput=true]True"
Write-Host "##vso[task.setvariable variable=SignPkgs;isOutput=true]True"
$configVars.Add("BuildPkgs", "True")
$configVars.Add("BuildNugets", "True")
$configVars.Add("SignPkgs", "True")
# tests, run all of them, internal, external, mac but not sample tests
Write-Host "##vso[task.setvariable variable=RunInternalTests;isOutput=true]True"
Write-Host "##vso[task.setvariable variable=RunExternalTests;isOutput=true]True"
Write-Host "##vso[task.setvariable variable=RunMacTests;isOutput=true]True"
Write-Host "##vso[task.setvariable variable=RunSampleTests;isOutput=true]False"
Write-Host "##vso[task.setvariable variable=SkipPublicJenkins;isOutput=true]False"
$configVars.Add("RunInternalTests", "True")
$configVars.Add("RunExternalTests", "True")
$configVars.Add("RunMacTests", "True")
$configVars.Add("RunSampleTests", "False")
$configVars.Add("SkipPublicJenkins", "False")
# if a developer decided to trigger one without device tests, allow it
if ($Env:RUN_DEVICE_TESTS -eq "true") {
Write-Host "##vso[task.setvariable variable=RunDeviceTests;isOutput=true]True"
$configVars.Add("RunDeviceTests", "True")
} else {
Write-Host "##vso[task.setvariable variable=RunDeviceTests;isOutput=true]False"
$configVars.Add("RunDeviceTests", "False")
}
}
# write debugging and process of the vars
foreach($key in $configVars.Keys) {
Write-Host "$key='$($configVars[$key])'"
Write-Host "##vso[task.setvariable variable=$key;isOutput=true]$($configVars[$key])"
}
name: configuration
displayName: "Parse PR labels"
@ -299,7 +306,7 @@ steps:
env:
PRODUCTSIGN_KEYCHAIN_PASSWORD: $(xma-password)
displayName: 'Signing PR Build'
condition: and(succeeded(), contains(variables['configuration.SignPkgs'], 'True'), contains(variables['configuration.IsPr'], 'True'))
condition: and(succeeded(), contains(variables['configuration.BuildPkgs'], 'True'), contains(variables['configuration.SignPkgs'], 'True'), contains(variables['configuration.IsPr'], 'True'))
# Ensure virtualenv is on the PATH
- template: set-path/v1.yml@templates