[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.JsonOutput
|
||||||
import groovy.json.JsonSlurper
|
import groovy.json.JsonSlurper
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
package tech.avroid.api
|
||||||
|
|
||||||
import groovy.json.JsonOutput
|
import groovy.json.JsonOutput
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.ncloudtech.jenkins
|
package tech.avroid.jenkins
|
||||||
|
|
||||||
import hudson.model.Result
|
import hudson.model.Result
|
||||||
import jenkins.model.CauseOfInterruption
|
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