Ответ 1
Все, что вам нужно сделать, это выйти 1.
if [ -f "$file" ]
then
echo "$file found."
else
echo "$file not found."
exit 1
fi
Я хотел бы отметить создание Jenkins для сбоя при одном сценарии, например:
if [ -f "$file" ]
then
echo "$file found."
else
echo "$file not found."
#Do Jenkins Build Fail
fi
Возможно ли это через Shell Script?
Ответ: Если мы выйдем с целым числом 1, сборка Jenkins будет отмечена как сбой. Поэтому я заменил комментарий exit 1
, чтобы решить эту проблему.
Все, что вам нужно сделать, это выйти 1.
if [ -f "$file" ]
then
echo "$file found."
else
echo "$file not found."
exit 1
fi
Чтобы скомпрометировать сборку Jenkins из .NET, вы можете использовать Environment.Exit(1)
.
Также см. Как указать код выхода консольного приложения в .NET?.
Чтобы провалить сборку Jenkins из Windows PowerShell, вы можете использовать подсказку Стива для С# следующим образом:
$theReturnCode = 1
[System.Environment]::Exit( $theReturnCode )
Примечание;
1.Windows перерабатывает коды выхода выше 65535. (fooobar.com/info/182007/...)
2. У Jenkins REST API есть команда "/stop", но это приведет к отмене сборки вместо фактического сбоя. (https://jenkinsapi.readthedocs.org/en/latest/build.html)
3.Jenkins также может отметить сборку "нестабильной", и этот пост (fooobar.com/info/94155/...) содержит сведения об этом решении.