在rpm安装作业期间,jenkins会因错误而失败

时间:2016-05-12 13:32:25

标签: linux bash shell jenkins

我有一个在我的测试机器上执行的部署任务。目的是在同一台机器上测试jenkins的新建rpm。

因此,我在jenkins中设置了一个部署作业,执行以下shell行:

artifact=$(ls build/*.rpm | head -1)
sudo /usr/local/sbin/jenkins-rpm-install $artifact
rm -rf build/

要安装rpm,我制作了一个小的shell脚本,jenkins拥有独有的sudo权限。

#!/bin/sh
#
# allows jenkins to install rpm as privileged user
#
# add the following line to /etc/sudoers:
# jenkins    ALL = NOPASSWD: /usr/local/sbin/jenkins-rpm-install
#

artifact=$1

rpm -vv --install --force $artifact

现在我遇到了问题:每当rpm安装失败时,jenkins都无法识别错误代码并将构建标记为成功。

有谁知道如何正确解决这个问题? 此外,欢迎提供改进此流程的提示。

2 个答案:

答案 0 :(得分:1)

如何简单地检查脚本中的rpm错误代码并自己向Jenkins报告?

rpm -vv --install --force $artifact
error_code=$?
if [[ err_code > 0 ]]; then exit $?; fi

或过载:

rpm -vv --install --force $artifact || exit $?

答案 1 :(得分:1)

如果在使用execute shell步骤的配置中,如果exit code!= 0,Jenkins会将构建标记为失败。

如果可能足以通过在末尾添加exit $?来更改脚本。