Integrando Notificaciones email, Slack
validamos que el plugin de envios de correo este instalado
Podemos configurar como paso extra una cuenta para manejo de prebas de un inbox de correo, para este caso usaremos el servicio de https://mailtrap.io/, el cual nos permite configurar un servidor de pruebas smtp

Creada la cuenta vamos a la configuracion global de Jenkins y busca la seccion "Extended E-mail Notification"
Configuramos el smtp server, y las credenciales para poder tener acceso a la bandeja de pruebas que nos proporciona el servicio de mailtrap
Ahora creamos un script para probar el envio de la notificacion, este es el codigo a utilizar para dicho script
node {
// config
def to = emailextrecipients([
[$class: 'CulpritsRecipientProvider'],
[$class: 'DevelopersRecipientProvider'],
[$class: 'RequesterRecipientProvider']
])
// job
try {
stage('build') {
println('so far so good...')
}
stage('test') {
println('A test has failed!')
sh 'exit 1'
}
} catch(e) {
// mark build as failed
currentBuild.result = "FAILURE";
// set variables
def subject = "${env.JOB_NAME} - Build #${env.BUILD_NUMBER} ${currentBuild.result}"
def content = '${JELLY_SCRIPT,template="html"}'
// send email
if(to != null && !to.isEmpty()) {
emailext(body: content, mimeType: 'text/html',
replyTo: '$DEFAULT_REPLYTO', subject: subject,
to: to, attachLog: true )
}
// mark current build as a failure and throw the error
throw e;
}
}
Configuramos una nueva pipeline, para hacer uso del script y la ejecutamos, como se muestra en la imagen se genera un error en el build y se debe de enviar la notifiacion al correo

Si vamos a la bandeja de pruebas de mailtrap, podemos observar que se envio la notificacion como se esperaba

Slack
para el envio de notificaciones hacia el servicio de slack primero vamos a crear un espacio de trabajo de pruebas, esto lo realizamos desde la web o el aplicativo de slack seguimos los pasos que se muestran en las imagenes a continuacion







Con el espacio de trabajo creado nos dirigmos a Jenkins e instalamos el plugin de notificaciones
con el plugin instalado regresamos a slack y hacemos unas configuraciones en el espacio de trabajo, la primera de ella es crear un canal espcifico para recibir las notificaciones

Segundo agregamos una nueva aplicacion.

Nos abrira una pagina en el navegar en la cual debemos de seleccionar la app que necesitamos en el canal, en este caso usaremos la app "WebHooks entrantes", la añadimos dando click en el boton "añadir Configuracion"

Y asociamos el canal con el cual trabajara la configuracion

Al agregar la integracion se despliga una informacion que la utilizaremos en jenkins para hacer la configuracion de la comunicacion del espacio de trabajo y Jenkins

Vamos a Jenkins y en configuracion global, nos dirigimos a la seccion "Global Slack Notifier Settings", lo primero que configuramos es las credenciales para ello lanzamos el gestor de credenciales de Jenkins y en proveedor selecionamos jenkins, al cargar la ventana configuramos como se muestra en la imagen, el secret es las ultimas dos partes que nos asigna la configuracion de la asigancion del Webhook


Agregadas las credenciales, realizanos las configuracions del plugin
Creamos un script para hacer las pruebas
node {
// job
try {
stage('build') {
println('so far so good...')
}
stage('test') {
println('A test has failed!')
sh 'exit 1'
}
} catch(e) {
// mark build as failed
currentBuild.result = "FAILURE";
// send slack notification
slackSend (color: '#FF0000', message: "FAILED: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]' (${env.BUILD_URL})")
// throw the error
throw e;
}
}
Agregamos un nuevo pipeline y lo ejecutamos debemos de obtener un error en la ejecucion, pero lo que nos interesa es recibir la notificacion en el canal de slack

Notificaciones recibidas en el canal

Last updated
Was this helpful?