如何解决如何使用 jenkinsfile 和参数化构建从远程 ssh 获取失败命令的退出代码
我正在尝试使用 Jenkinsfile 构建管道以在远程服务器上执行某些操作,并希望在继续执行其他命令之前获取失败命令的退出代码。我尝试了以下方式,但即使命令无法执行或执行中有任何异常,它也总是返回 0 而不是 1。
pipeline {
agent any
stages {
stage('stage') {
when {
expression {env.GIT_BRANCH == 'origin/stage'}
}
steps {
echo 'build '
ansiColor('xterm') {
echo 'build '
sh """ssh -tt server_address << EOF
cd /u/${DIR}
echo \$?
if [ \$? eq 1 ]; then
exit
fi
ls -al
exit
EOF"""
}
}
}
}
}
解决方法
echo $?
if [ $? eq 1 ]; then
第二个 $?
将是前一个 echo
命令的结果:很可能为 0,考虑到 echo
会成功。
您需要存储第一个 $?第一:
cd /u/${DIR}
res=\$?
if [ \${res} eq 1 ]; then
exit 1
fi
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。