我想得到我的jenkins构建工作的结果要么失败(红色),不稳定(黄色)要么成功(绿色)......
如果我从我的shell脚本返回非零,我只会失败。是否有任何产生不稳定的返回码?
答案 0 :(得分:16)
更新:较新版本的Jenkins支持设置unstable
的退出代码。有关详细信息,请参阅 here (感谢@Pedro和@gib)
我没有测试过这个。
以下原始答案:
没有。脚本退出代码不会在Jenkins中生成UNSTABLE
构建结果。
设置UNSTABLE
构建结果的唯一方法是通过Jenkins以编程方式。
这就是Jenkins的 test harness 部分。
您也可以直接使用脚本中的Jenkins CLI来设置当前正在执行的构建的结果。不要返回特定的退出代码,而是让脚本执行Jenkins CLI命令。有关详细信息,请在您自己的服务器上转到http://<your-server>/cli/command/set-build-result
还有许多插件可以做到这一点,包括:
答案 1 :(得分:3)
现在可以在较新版本的Jenkins中使用,你可以这样做:
var limit = 2;
$('input.civicrm-enabled.form-checkbox').on('change', function(evt) {
if($(this).siblings(':checked').length >= limit) {
this.checked = false;
}
});
Pipeline Syntax生成器在高级选项卡中显示:
答案 2 :(得分:1)
正如其中一条评论中所述,这是jenkins团队报告的问题,已经修复并最初计划用于2.26版本。有关详细信息Permit "Execute shell" jobs to return 2 for "unstable"
,请参阅以下问题但是,似乎依赖于another issue它仍在阻止它
答案 3 :(得分:0)
Any Build Step Plugin
Fail The Build Plugin
first build step: Execute command
Command: echo build_step
second build step: conditional step
Run: Not
!:Execute command
Command: echo test_step
Builder: Set the build result
Result: Unstable
change "echo test_step" to "echo_test_step" to see how it works
if BUILD fails the result is FAILED, and TEST is not runned
if BUILD succedes, TEST runs, and if fails the result is UNSTABLE
if BUILD succedes, and TEST succedes, the result is SUCCESS
答案 4 :(得分:0)
正如其他人发布的那样,没有返回[退出]代码表示“不稳定”,但您可以采取多种方法。为了省去阅读Jenkins文档和尝试的麻烦,就像我一样,这是一种方法,这对我有用。
它基于Jenkins提供的“CLI”。 CLI是作为独立的JAR实现的,可以从Jenkins本身下载。在下面的示例中,我们下载了该JAR(如果尚未下载),并使用命令“set-build-result”和参数“unstable”调用它。
然后您的脚本应以零状态退出,否则构建将失败。
当脚本构建步骤完成时,控制台日志将显示构建变为“不稳定”;执行该CLI命令后,不。
unstable() {
test -f jenkins-cli.jar || wget -q ${JENKINS_URL}/jnlpJars/jenkins-cli.jar
java -jar jenkins-cli.jar set-build-result unstable
}
do-something-that-might-go-badly || unstable
exit 0
答案 5 :(得分:0)
管道中的简单方法:
try {
sh "<Whatever your command mayeth be>"
} catch (Exception e) {
// Caught a non-zero exit code
// Mark build as unstable.
currentBuild.result='UNSTABLE'
}