Sto provando a fare in modo che un certo risultato in uno script di PowerShell fallisca il processo di compilazione, ma non funziona per me. Sto usando le nuove azioni costruire da TFS 2015 e provato le seguenti opzioni:Come fallire la compilazione da un'attività PowerShell in TFS 2015
- Logging commands
- uscita 1
io capisco testo rosso nella finestra di log del passo, così come contrassegnato 'Problemi' nella panoramica della build, ma il risultato della build è ancora Verde: 'Build riuscito'
Voglio usare l'errore nello script per fallire la compilazione e quindi inviare una e-mail utilizzando un avviso su build falliti.
Edit: compreso lo script PS:
Param(
[string]$url
)
if ($url -eq '')
{
#use default value
$url = 'https://myurl.com'
}
$req = [system.Net.WebRequest]::Create($url)
$req.Timeout = 60000 * 5 # = 5 minutes
try
{
Write-Host "Try to get response from url:" $url
$res = $req.GetResponse()
Write-Host "Closing the connection"
$req.Close() # close the connection
}
catch [System.Net.WebException]
{
Write-Host "Got an exception"
Write-Host "##vso[task.logissue type=error;]Exception: " $_.Exception
if ($_.response) # try to close the connection
{
$_.response.Close();
}
$res = $_.Exception.Response
}
$printCode=[int]$res.StatusCode
Write-Host "Result StatusCode:" $res.StatusCode "(" $printCode ")"
If ([int]$res.StatusCode -eq 200)
{
Write-Host "##vso[task.complete result=Succeeded;]Done"
}
Else
{
Write-Host "##vso[task.logissue type=error;]Test error: " $res
Write-Host "##vso[task.complete result=Failed;]Error testing if demo site is up"
exit 1
}
Potrebbe condividere lo script PowerShell in modo che possiamo riprodurre? –
Ho modificato la domanda per includere lo script –