当我运行Execute shell
构建步骤以执行脚本并且该脚本返回时0
,Jenkins
将构建标记为SUCCESS
,否则将其标记为FAILURE
,这是预期的默认行为,因为这0
表示没有错误,并且其他任何值都表示错误。
有没有一种方法来标记构建为SUCCESS
仅如果返回值比其他特定值匹配0
(例如1
,2
,3
…)?
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