由于在Jenkins的构建过程中挂起了一个python进程(yandex-tank)的一些问题(之后构建无法停止)我需要使用一些带有超时或使用超时命令本身的额外kill命令来停止这个有问题的进程:
timeout $TIMEOUT yandex-tank-jmeter -i -o "jmeter.jmx=$WORKSPACE/$TEST_PLAN"
超时发送默认(15)终止信号,但之后构建进入状态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
根据Jenkins文档中的“执行shell”步骤:
默认情况下,将使用“-ex”选项调用shell。
因此,Jenkins将所有shell代码放入一个shell脚本文件,在temp目录中,如/tmp/sh/jenkins45723947385985.sh,然后按如下方式执行:
/bin/sh -xe /tmp/sh/jenkins45723947385985.sh
这可以在作业的控制台输出中看到。
-xe中的e选项表示shell一出错就会退出。要更改此行为,请将自定义shebang行添加到Jenkins shell脚本的开头,例如
#!/bin/sh -x
一旦发生错误,Jenkins将不再终止。