Jenkins pipeline Jenkins脚本化管道:sshCommand执行状态代码
在我的jenkins脚本化管道中,有一个阶段我在远程机器上运行bash脚本。我尝试了以下几种方法,但没有满足要求: -因为我有一个参数要传递给远程服务器命令来运行,Jenkins pipeline Jenkins脚本化管道:sshCommand执行状态代码,jenkins-pipeline,Jenkins Pipeline,在我的jenkins脚本化管道中,有一个阶段我在远程机器上运行bash脚本。我尝试了以下几种方法,但没有满足要求: -因为我有一个参数要传递给远程服务器命令来运行,sshScript不支持它 -publish-over-ssh-plugin在jenkins日志中显示我的execCommand,这是我不想要的 所以我使用sshPut将bash脚本放在远程服务器上,并使用带参数的sshCommand在那里运行它。一切都很好,除非我有错误,我需要退出并做一些其他事情。如果出现错误,jenkins作业将
sshScript
不支持它
-publish-over-ssh-plugin
在jenkins日志中显示我的execCommand,这是我不想要的
所以我使用sshPut将bash脚本放在远程服务器上,并使用带参数的sshCommand在那里运行它。一切都很好,除非我有错误,我需要退出并做一些其他事情。如果出现错误,jenkins作业将异常退出执行。这可以通过设置sshCommand的failOnError:false
来覆盖;但那份工作永远不会失败
如果sshCommand:退出时出现错误,那么我需要做一些事情,比如发送slackNotify等等。那么,有没有像statusCode
或exit bhalah
这样的东西,我可以像那样进行比较呢0
并执行一些功能
我在想类似的事情
stage('Deploy'){
// some blocks here
sshCommand remote: remote, failOnError: false, command: "bash Filescript.sh $ARGS1"
if (statusCode != 0){
//do my thing here
}
}
您可以使用try-catch:
stage('Deploy'){
// some blocks here
try {
sshCommand remote: remote, command: "bash Filescript.sh $ARGS1"
}
catch {
//do my thing here
}
}