我想将命令行脚本添加到 Jenkins 作为构建过程的一部分。0
如果成功或666
失败,此命令行脚本将退出并显示错误代码。如果此脚本失败,我希望停止构建。
是否可以使用 Jenkins 执行此操作? 如果可以,该怎么做?
答案1
您的 bash 构建脚本可以set -e
在运行测试之前进行。
set -e
如果在构建过程中出现非零退出状态,将导致 Jenkins 停止构建。在项目配置中的 Execute Shell 框中,您将看到类似以下内容:
set -e
yourcommand1
yourcommand2
以下是一些关于 bash 选项的文档。
答案2
您需要小心退出超过 255 的代码。退出代码必须在 0-255 范围内。0 表示成功,其他 1-255 表示错误代码。您还必须避免保留错误代码具有一定的含义。
cmp@cmp-dev:~$ bash --version
GNU bash, version 4.1.5(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
这是 666 号出口:
$ bash
$ exit 666
exit
$ echo $?
154
它在 255 处结束:
$ bash
$ exit 256
exit
$ echo $?
0
坚持使用 255 及以下并避免保留错误代码(你认识的魔鬼更好,是吧?)