当前位置: 首页 > 面试题库 >

如何仅在特定的错误退出值(非0)上将Jenkins构建标记为SUCCESS?

杜彦君
2023-03-14
问题内容

当我运行Execute shell构建步骤以执行脚本并且该脚本返回时0Jenkins将构建标记为SUCCESS,否则将其标记为FAILURE,这是预期的默认行为,因为这0表示没有错误,并且其他任何值都表示错误。

有没有一种方法来标记构建为SUCCESS仅如果返回值比其他特定值匹配0(例如123…)?

PS:如果您想知道为什么我要寻找它,这将允许我执行Jenkins本身的单元测试,因为编写脚本时会根据各种因素返回不同的退出值,从而使我可以期望某些值取决于关于某些设置错误,并确保我的整个Jenkins集成能够解决这些错误。


问题答案:

好吧,我继续IRC #jenkins并没有一个关于插件的新知识,该插件可以根据特定的退出代码来设置特定的工作状态:(我设法通过创建一个Execute shell包含以下内容的步骤来完成我想做的事情:

bash -c "/path/to/myscript.sh; if [ "\$?" == "$EXPECTED_EXIT_CODE" ]; then exit 0; else exit 1; fi"

-在下面运行脚本bash -c可以捕获退出代码,并且Jenkins当该退出代码不同于0(通常这样做)时,可以阻止停止执行构建。

- \$?被解释为$?脚本执行后,并表示其退出代码。

- $EXPECTED_EXIT_CODE是我的工作参数之一,它定义了我期望的退出代码。

-该if语句仅执行以下操作:如果我获得了预期的退出代码,则以0退出,以将构建标记为SUCCESS;否则以1退出,以将构建标记为FAILURE



 类似资料:
  • 问题内容: 我在寻找答案时发现的恐怖故事… 好的,我有一个.sh脚本,它几乎完成了詹金斯应该做的所有事情: 从SVN检出源 建立项目 部署项目 自己清洗 因此,在Jenkins中,我只需要通过在ExecuteShell命令中运行脚本来“构建”项目。脚本已运行(下载了源代码,项目正在构建/部署中),但随后将构建标记为失败:生成步骤’Executeshell’将构建标记为失败,即使脚本已成功运行!我尝

  • 我在寻找答案时发现的恐怖故事... 好的,我有一个。sh脚本,它几乎完成了Jenkins应该做的一切: null null

  • 我在让Jenkins构建特定标记时遇到问题。该标记是参数化构建的一部分,但我不知道如何将其传递给git插件来构建该标记。这花了我一天三个小时的时间,我在Stack Overflow向大师们承认了失败。

  • 问题内容: 我在让Jenkins构建指定标签方面遇到问题。标签是参数化构建的一部分,但是我不知道如何将其传递给git插件来构建该标签。我每天花了3个小时,在堆栈溢出时我输给了大师。 问题答案: 我可以通过使用“分支生成”参数来做到这一点: 用标签名称替换[tag-name]。

  • 问题内容: 在我正在研究的项目中,我们正在使用Shell脚本执行不同的任务。有些是运行rsync的sh / bash脚本,有些是PHP脚本。PHP脚本之一正在运行一些集成测试,这些测试将输出到JUnit XML,代码覆盖率报告等。 Jenkins能够 根据 退出状态 将作业标记为成功/失败 。在 PHP中,如果脚本 在运行期间检测到测试失败, 则以1退出 。其他shell脚本运行命令并使用其中的退

  • 我在Mac上使用Eclipse。每次在Eclipse上运行应用程序时都会出现以下错误: 已终止,退出值:0/library/java/javavirtualmachines/jdk1.8.0_65.jdk/contents/home/bin/java(Nov 16 2015 5:16:10 PM) 供您参考: /usr/libexec/java_home /library/java/javavir