当我运行Execute shell构建步骤以执行脚本并且该脚本返回时0,Jenkins将构建标记为SUCCESS,否则将其标记为FAILURE,这是预期的默认行为,因为这0表示没有错误,并且其他任何值都表示错误。
Execute shell
0
Jenkins
SUCCESS
FAILURE
有没有一种方法来标记构建为SUCCESS仅如果返回值比其他特定值匹配0(例如1,2,3…)?
1
2
3
PS:如果您想知道为什么我要寻找它,这将允许我执行Jenkins本身的单元测试,因为编写脚本时会根据各种因素返回不同的退出值,从而使我可以期望某些值取决于关于某些设置错误,并确保我的整个Jenkins集成能够解决这些错误。
好吧,我继续IRC #jenkins并没有一个关于插件的新知识,该插件可以根据特定的退出代码来设置特定的工作状态:(我设法通过创建一个Execute shell包含以下内容的步骤来完成我想做的事情:
IRC #jenkins
bash -c "/path/to/myscript.sh; if [ "\$?" == "$EXPECTED_EXIT_CODE" ]; then exit 0; else exit 1; fi"
-在下面运行脚本bash -c可以捕获退出代码,并且Jenkins当该退出代码不同于0(通常这样做)时,可以阻止停止执行构建。
bash -c
- \$?被解释为$?脚本执行后,并表示其退出代码。
\$?
$?
- $EXPECTED_EXIT_CODE是我的工作参数之一,它定义了我期望的退出代码。
$EXPECTED_EXIT_CODE
-该if语句仅执行以下操作:如果我获得了预期的退出代码,则以0退出,以将构建标记为SUCCESS;否则以1退出,以将构建标记为FAILURE。
if