Блок Jenkins powershell не ждет, пока он не закончится - PullRequest
0 голосов
/ 13 февраля 2019

Блок питания Jenkins PowerShell не ожидает своего завершения, похоже, он переходит к следующему блоку, который представляет собой пакетную команду Windows.Все переменные были протестированы на работу с помощью echo, и вывод консоли показывает их правильные значения.

Блок Windows Powershell

Start-Process -FilePath "C:\Program Files\MATLAB\R2018b\bin\matlab.exe" -ArgumentList "-automation -nosplash -nodesktop -wait -r `"echo ; cd $DOMAIN\Framework\Integration; setDOMAINPath $DOMAIN; disp(iAnalytics.domain.getSingleton.getRevision); createExecutable; exit`" -logfile $logfile" -Credential $credential -wait

Затем он сразу переходит к этому, исполняемый файл создаетсяMatlab, поэтому он не находит его и не может выполнить задание.

Пакетная команда Windows

cd %Domain%\ModuleTest
DomainTestConsistency.exe

Так есть ли способ сказать Дженкинсу, чтобы он дождался завершения процесса powershell и только тогдасколько времени потребуется, чтобы пойти и выполнить следующий блок?Я попытался добавить -wait и трубопроводов |вне нуля, но ничего не работает.Есть идеи?

1 Ответ

0 голосов
/ 13 февраля 2019

Вы хотите использовать $?автоматическая переменная.(https://ss64.com/ps/syntax-automatic-variables.html) Возвращается как ИСТИНА, если последняя операция была успешной, и ЛОЖЬ, если она не удалась.

#run first command 

if($? = "true")
{
    #run second command
}
else
{
Write-Host "first command has failed"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...