提问人:Selvakumar Ponnusamy 提问时间:12/31/2013 最后编辑:Eric LeschinskiSelvakumar Ponnusamy 更新时间:1/19/2017 访问量:45851
使用 shell 脚本在 Jenkins 中手动构建失败吗
Do manual build fail in Jenkins using shell script
问:
我想将 Jenkins 构建标记为在一种情况下失败,例如:
if [ -f "$file" ]
then
echo "$file found."
else
echo "$file not found."
#Do Jenkins Build Fail
fi
可以通过 Shell 脚本吗?
答:如果我们以整数 1 退出,Jenkins 构建将被标记为失败。所以我用来解决这个问题,我替换了评论。exit 1
答:
87赞
alk3ovation
12/31/2013
#1
您需要做的就是退出 1。
if [ -f "$file" ]
then
echo "$file found."
else
echo "$file not found."
exit 1
fi
评论
3赞
TyMayn
10/31/2014
您能否添加一个指向文档的链接来解释这一点?顺便说一句,感谢您的回答。
0赞
albertoiNET
3/14/2017
并且可以将 exit 设置为另一个数字,以便将 jenkins 标记为另一种状态类型,即不可设置?
1赞
Jonathan Benn
10/6/2020
@albertoiNET据我所知,任何非零退出代码都会被 shell 解释为错误。但是,该信息会保留,因此您可以测试返回了哪个特定的错误代码。这首先是错误代码的点。
3赞
Ben
10/21/2014
#2
若要使从 .NET 构建的 Jenkins 失败,可以使用 .Environment.Exit(1)
另请参阅如何在 .NET 中指定控制台应用程序的退出代码?。
2赞
AnneTheAgile
1/26/2016
#3
若要使 Windows PowerShell 中的 Jenkins 生成失败,可以使用 Steve 的 C# 提示,如下所示:
$theReturnCode = 1
[System.Environment]::Exit( $theReturnCode )
笔记;
1.Windows 回收高于 65535 的退出代码。( https://stackoverflow.com/a/31881959/242110 )
2.Jenkins REST API 有一个“/stop”命令,但这将取消构建,而不是实际失败。( https://jenkinsapi.readthedocs.org/en/latest/build.html )
3.Jenkins 还可以将构建标记为“不稳定”,这篇文章(https://stackoverflow.com/a/8822743/242110)详细介绍了该解决方案。
评论