我想知道为什么它会打印在我的Jenkins实例的控制台上,为什么通过电子邮件构建失败。我做了以下
node {
try
{
stage('checkout') {
checkout scm
}
stage('restore') {
sh 'dotnetge restore test.sln'
}
}
catch (err) {
cause=err
emailext body:"Error: $cause ",
to: 'myemail@gmail.com'
}
}
控制台上的结果类似于“未找到dotnetge命令”,我希望通过电子邮件收到这种相同类型的错误。这是我通过电子邮件获得的
错误:hudson.AbortException:脚本返回了退出代码127
答案 0 :(得分:0)
由于shell脚本失败,它将给出您当前正在获取的异常。您可以采用一种解决方法来解决此问题:
node {
try
{
stage('checkout') {
checkout scm
}
stage('restore') {
try{
sh 'dotnetge restore test.sln'}
catch(exc){
error "dotnetge command failed"
}
}
}
catch (err) {
cause=err
emailext body:"Error: $cause ",
to: 'myemail@gmail.com'
}
}
这样,您至少可以知道哪个命令失败。我要做的就是创建另一个名为curr_stage
的变量,并将其值分配给当前阶段:
node{
def curr_stage
try {
stage("stage1") {
curr_stage = "stage1"
}
stage("stage2") {
curr_stage = "stage2"
}
stage("stage3") {
curr_stage = "stage3"
}
}catch(exception){
//notify that the the build failed at ${curr_stage}
}
}