Почему моя пользовательская задача VSTS проходит с кодом выхода 1? - PullRequest
0 голосов
/ 11 сентября 2018

У меня следующая раздражающая проблема.Моя пользовательская задача сборки VSTS не потерпит неудачу.Он всегда проходит, в то время как $ LASTEXITCODE не равен нулю.

Код работает так, как ожидалось.Выдает ошибку в журнале.Несмотря на это, шаг завершается успешно, а сборка / выпуск продолжается.

Снимок экрана: screenshot Я также включил хост записи с кодом выхода, который также показывает код выхода 1.

Код:

Try {
    ....
    #Loop through the server list
    Foreach ($Server in $machines) 
    {
        # Use SSL or not    
        If($UseSSL -eq $true) 
        {
            Write-Host "Connecting to $Server using a SSL connection (TCP/5986), Skip CA Check: $CheckCA ..."
            $s = New-PSSession -ComputerName $Server -Credential $Cred -UseSSL -SessionOption $SessionOptions
        }
        Else
        {
            Write-Host "Connecting to $Server with an unsecure connection (TCP/5985) ..."
            $s = New-PSSession -ComputerName $Server -Credential $Cred
        }

        # Run
        $ExitCode = Invoke-Command -Session $s -ScriptBlock $script -ArgumentList $ApplicationPoolName,$Action,$Killswitch

        # Cleanup the session
        Write-Host "Closing connection to $Server."
        Remove-PSSession -Session $s
    }
} Catch {
    Write-Host "##vso[task.logissue type=Error;]$Error"
    $ExitCode = 1
} Finally {
    #Leave TFS/VSTS trace
    if (Get-Command -Name Trace-VstsEnteringInvocation -ErrorAction SilentlyContinue) {
        Trace-VstsLeavingInvocation $MyInvocation
    }
    write-host "ExitCode: $ExitCode"
    Exit $ExitCode
}

Что мне здесь не хватает?

1 Ответ

0 голосов
/ 13 сентября 2018

Я решил это, удалив часть finally.

Не работает:

try {
    .... do stuff ....
} catch {
   write-error "some error"
   exit 1
} Finally {
  .. some final steps ...
}

Рабочая:

try {
    .... do stuff ....
} catch {
   write-error "some error"
   exit 1
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...