Определите, когда произошла повторная попытка в конвейере Дженкинса

#jenkins #groovy #jenkins-pipeline

#дженкинс #заводной #дженкинс-трубопровод

Вопрос:

Я реализовал повторные попытки вокруг некоторого кода в конвейере Дженкинса.

 retry(2) {  // code  }  

Есть ли способ определить, когда произошла повторная попытка? Кроме того, просто вручную проверяйте журналы консоли. Хотел бы идентифицировать сборки, которые повторили какой-то неправильный код, и отправить уведомление.

Ответ №1:

Я не знаю способа узнать это внутри retry{ } квартала.

Вы можете попробовать довольно универсальное решение (даже, возможно, в качестве глобального var в общей библиотеке конвейеров), например, использовать try catch блок (поскольку повторная попытка будет ждать исключения).:

 int retryAttempts = 0 retry(2) {  try {  if (retryAttemptsgt;0) {  // a retry is occurring  // Do pre-retry logic, if needed  ...  }  // Do stuff  .....  } catch (e) {  retryAttempts   // a retry WILL occur  throw e // rethrow to trigger retry  } } if (retryAttemptsgt;0) {  // a retry has occurred  // Do post-retry logic, if needed  ... }