Уведомление о зависании почты в Jenkins Pipeline или Workflow

Я создал тестовый рабочий процесс, как показано ниже:

node("master") {
ws("/opt/mount1/jenkins/jobs/GoogleFlow/workspace/${env.BUILD_NUMBER}") {
try {
stage name: 'sync', concurrency: 3
  echo "before sync"
  sh '''touch buildFile
  echo "This is from ${BUILD_NUMBER}" >> buildFile
  cat buildFile'''
  sh "sleep 5"
  echo "after sync"
  sh "date"


stage name: 'build', concurrency: 1
  echo "before build"
  sh "date"
  sh '''sleep 10
  cat buildFile'''
  echo "build 1/3"
  sh "sleep 5"
  echo "build 2/3"
  sh '''sleep 5
  cat buildFile'''
  echo "build 3/3"
  sh "date"

stage name: 'test', concurrency: 3
  echo "before test"
  sh "date"
  sh '''sleep 10
  cat buildFile'''
  sh "date"

 stage name: 'delete', concurrency: 1
 sh '''pwd
 ls -al'''
 //deleteDir()
 //sh '''pwd
 //ls -al'''

}

 catch (err){
    stage 'Send Notification'
        mail (to: '[email protected]',
         subject: "test",
         body: "test");
    }
}
}

Я пытаюсь получить уведомление по электронной почте, используя функцию try-catch. Я сослался на этот пост в блоге, но когда дело доходит до стадии ' отправить уведомление», он просто сидит и висит.

Но если я использую старый способ работы Дженкинса, я могу получать электронные письма. Это показывает, что настройка SMTP работает. Ниже вывод консоли, когда она зависла

[Pipeline] Allocate node : Start
Running on master in /opt/mount1/jenkins/jobs/GoogleFlow/workspace@4
[Pipeline] node {
[Pipeline] Allocate workspace : Start
Running in /opt/mount1/jenkins/jobs/GoogleFlow/workspace/205
[Pipeline] ws {
[Pipeline] stage: sync
Entering stage sync
Proceeding
[Pipeline] echo
before sync
[Pipeline] sh
[205] Running shell script
+ touch buildFile
+ echo 'This is from 205'
+ cat buildFile
This is from 205
[Pipeline] sh
[205] Running shell script
+ sleep 5
[Pipeline] echo
after sync
[Pipeline] sh
[205] Running shell script
+ date
Tue Feb  2 22:54:52 UTC 2016
[Pipeline] stage: build
Entering stage build
Waiting for builds [204]
Canceled since #206 got here
[Pipeline] stage: Send Notification
Entering stage Send Notification
Proceeding
[Pipeline] mail

Любая идея о том, как исправить?

Jenkins — 1.643 Почтовый плагин — 1.11


person OK999    schedule 02.02.2016    source источник
comment
Вы пытались повторно создать исключение после шага mail?   -  person amuniz    schedule 27.02.2016
comment
Это похоже на странный обходной путь. В общем, я не нашел простого способа указать действия, которые нужно выполнить при сбое, может быть, дело в перехвате исключений?   -  person giorgiosironi    schedule 27.06.2016


Ответы (1)


У меня была такая же проблема, и я решил ее, обновив почтовую программу до версии 1.16.

person stuball321    schedule 04.04.2016