2016-07-19 2 views
2

У меня возникла проблема при строительстве моей работы с трубопроводом. У меня есть несколько этапов, и один из них содержит блок повтора. Что-то вроде этого:Как окрасить сцену в зеленый, если она была успешной во второй попытке?

stage "1" 
stage "other job call" 
node{ 
    def job 
    retry(3) 
     { 
      job = build job: 'Called job', parameters: 
         [ 
          [$class: 'StringParameterValue', name: 'Branch', value: "Branch"], 
         ]; 
     } 
    } 
} 

stage "2" 

Итак, вызывается другое задание и оно успешно строится со второго раза. Но сцена окрашена в красный цвет, несмотря на это было успешным: enter image description here

enter image description here

Как цвет этой стадии на зеленый?

ответ

1

Как и вы, я искал возможность изменить состояние или цвет одной стадии и, наконец, кажется, что мы не имеем доступа к этой функции (может быть, если вы создаете свой собственный плагин ...)

Во всяком случае, в вашем случае функция «Retry» позволяет повторить попытку блока (до N раз), если какое-либо исключение происходит во время его выполнения. Затем, если вы используете функцию повтора, вы автоматически получите это состояние сцены.

Я не понимаю, почему вы используете «повторить», но если вы хотите, чтобы избежать этого пытаются использовать некоторые другие функции, как:

  • try/catch/finally блоков
  • catchError блок
  • currentBuild .result = 'UNSTABLE' // 'SUCCESS' | «НЕИСПРАВНОСТЬ» | «UNSTABLE»
  • сна // если вам нужно ждать чего-то другого
+1

Вы знаете, если это возможно, чтобы изменить статус одной стадии (без изменения статуса всей сборки)? – OlivierTerrien