由于在Jenkins的构建过程中挂起python进程(yandex-tank)存在一些问题(之后构建无法停止),我需要使用一些额外的带有超时的kill命令或使用超时命令本身来停止这个有问题的进程:
timeout $TIMEOUT yandex-tank-jmeter -i -o "jmeter.jmx=$WORKSPACE/$TEST_PLAN"
timeout 发送默认 (15) 终止信号,但之后构建进入状态 FAILED。
是否有任何解决方法或特殊的终止信号可以使构建成功?
由于在Jenkins的构建过程中挂起python进程(yandex-tank)存在一些问题(之后构建无法停止),我需要使用一些额外的带有超时的kill命令或使用超时命令本身来停止这个有问题的进程:
timeout $TIMEOUT yandex-tank-jmeter -i -o "jmeter.jmx=$WORKSPACE/$TEST_PLAN"
timeout 发送默认 (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 文档:
默认情况下,将使用“-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 将不再终止。