脚本中的 Jenkins 和 kill 命令使构建失败
Jenkins and kill command in the script makes builds failed
由于在 Jenkins 的构建过程中挂起 python 进程 (yandex-tank) 的一些问题(之后构建无法停止)我需要通过一些额外的 kill 来停止这个有问题的进程命令超时或使用超时命令本身:
timeout $TIMEOUT yandex-tank-jmeter -i -o "jmeter.jmx=$WORKSPACE/$TEST_PLAN"
timeout 发送默认的 (15) kill 信号,但之后构建进入状态 FAILED。
是否有任何解决方法或特殊终止信号来使构建成功?
您是否尝试过手动覆盖退出代码?
timeout $TIMEOUT yandex-tank-jmeter -i -o "jmeter.jmx=$WORKSPACE/$TEST_PLAN"; RES=$?
//If the command timed out, then RES equals 124.
...
//at the end of job scenario:
if [ $RES -eq 124 ]; then RES=0;
fi
exit $RES
根据 "Execute shell" 步骤的 Jenkins 文档:
By default, the shell will be invoked with the "-ex" option.
因此,Jenkins 将所有 shell 代码放入临时目录中的 shell 脚本文件中,类似于 /tmp/sh/jenkins45723947385985.sh 然后执行如下:
/bin/sh -xe /tmp/sh/jenkins45723947385985.sh
这可以在作业的控制台输出中看到。
-xe中的e选项表示shell一出错就退出。要更改此行为,请将自定义 shebang 行添加到 Jenkins shell 脚本的开头,例如
#!/bin/sh -x
Jenkins 将不再在发生错误时立即终止。
由于在 Jenkins 的构建过程中挂起 python 进程 (yandex-tank) 的一些问题(之后构建无法停止)我需要通过一些额外的 kill 来停止这个有问题的进程命令超时或使用超时命令本身:
timeout $TIMEOUT yandex-tank-jmeter -i -o "jmeter.jmx=$WORKSPACE/$TEST_PLAN"
timeout 发送默认的 (15) kill 信号,但之后构建进入状态 FAILED。
是否有任何解决方法或特殊终止信号来使构建成功?
您是否尝试过手动覆盖退出代码?
timeout $TIMEOUT yandex-tank-jmeter -i -o "jmeter.jmx=$WORKSPACE/$TEST_PLAN"; RES=$?
//If the command timed out, then RES equals 124.
...
//at the end of job scenario:
if [ $RES -eq 124 ]; then RES=0;
fi
exit $RES
根据 "Execute shell" 步骤的 Jenkins 文档:
By default, the shell will be invoked with the "-ex" option.
因此,Jenkins 将所有 shell 代码放入临时目录中的 shell 脚本文件中,类似于 /tmp/sh/jenkins45723947385985.sh 然后执行如下:
/bin/sh -xe /tmp/sh/jenkins45723947385985.sh
这可以在作业的控制台输出中看到。
-xe中的e选项表示shell一出错就退出。要更改此行为,请将自定义 shebang 行添加到 Jenkins shell 脚本的开头,例如
#!/bin/sh -x
Jenkins 将不再在发生错误时立即终止。