Так как скрипт оболочки не удался, он выдаст исключение, которое вы получаете в данный момент.Вы можете обойти это:
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}
}
}