[DO-1142] add_notification (#36)
Reviewed-on: https://git.avroid.tech/DevOps/jenkins-shared-lib/pulls/36 Reviewed-by: Aleksandr Vodyanov <aleksandr.vodyanov@avroid.tech>
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
package tech.avroid.api
|
||||
|
||||
import groovy.json.JsonOutput
|
||||
import groovy.json.JsonSlurper
|
||||
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
package tech.avroid.api
|
||||
|
||||
import groovy.json.JsonOutput
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.ncloudtech.jenkins
|
||||
package tech.avroid.jenkins
|
||||
|
||||
import hudson.model.Result
|
||||
import jenkins.model.CauseOfInterruption
|
||||
|
||||
54
src/tech/avroid/jenkins/Notifications.groovy
Normal file
54
src/tech/avroid/jenkins/Notifications.groovy
Normal file
@@ -0,0 +1,54 @@
|
||||
package tech.avroid.jenkins
|
||||
|
||||
/**
|
||||
*Класс для отправки преднастроенных оповещений из Jenkins
|
||||
*/
|
||||
class Notifications implements Serializable {
|
||||
|
||||
// See https://www.baeldung.com/java-serial-version-uid
|
||||
private static final long serialVersionUID = 1L
|
||||
|
||||
/**
|
||||
* Отправка преднастроенного почтового оповещения
|
||||
* <a href="https://www.jenkins.io/doc/pipeline/steps/email-ext/#emailext-extended-email">Документация плагина</a>
|
||||
* Передаём через тип Map* Передаём через тип Map
|
||||
* @param script Script - указатель на контекст вызывающего объекта шага script
|
||||
* @param subject String - [опционально] тема письма
|
||||
* @param body String - [опционально] тело письма
|
||||
* @param mimeType String - [опционально] тип MIME тела письма
|
||||
* @param attachLog boolean - [опционально] прикреплять ли лог к сообщению
|
||||
* @param recipientProviders List - [опционально] предзаданные классы получателей сообщения
|
||||
* @param to String - [опционально] одиночный получатель сообщения
|
||||
* @param errorString String - [опционально] специальная переменная для ввода в тело письма текста ошибки
|
||||
*/
|
||||
static void email(Map args = [:]) {
|
||||
Map defaultArgs = [
|
||||
mimeType: 'text/html',
|
||||
attachLog: true,
|
||||
recipientProviders: [args.script.developers(), args.script.requestor()],
|
||||
to: '',
|
||||
subject: "${args.script.currentBuild.currentResult}. Pipeline task: " +
|
||||
args.script.currentBuild.fullDisplayName,
|
||||
body: "<p>Console output: "<a href=\'${args.script.env.BUILD_URL}\'>" +
|
||||
"${args.script.env.JOB_NAME} [${args.script.env.BUILD_NUMBER}]</a>"</p>"
|
||||
]
|
||||
|
||||
defaultArgs.each { k, v ->
|
||||
if (args[k] == null || args[k] == '' || args[k] == []) {
|
||||
args[k] = v
|
||||
}
|
||||
}
|
||||
|
||||
if (args.errorString != '' && args.errorString != null) {
|
||||
args.body = args.body + "\nTask error:\n${args.errorString}"
|
||||
}
|
||||
|
||||
args.script.emailext subject: args.subject,
|
||||
mimeType: args.mimeType,
|
||||
body: args.body,
|
||||
attachLog: args.attachLog,
|
||||
recipientProviders: args.recipientProviders,
|
||||
to: args.to
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user