Hoy os voy a enseñar cómo podemos lanzar un aviso a Discord cuándo un job de Jenkins ha finalizado.

Primero instalamos el plugin Discord Notifier: https://plugins.jenkins.io/discord-notifier/
Lo buscamos en administrar Jenkins > Available Plugins > Discord Notifier

Lo instalamos pulsando en Install Without restart.
Ahora vamos al Job dónde queremos utilizarlo y seleccionamos Añadir acciones para ejecutar después:

Y seleccionamos Discord Notifier:

Ahora añadimos el webhook de Discord. Para ello seleccionamos el canal dónde queremos lanzar el aviso:

Pulsamos en ajustes > integraciones > webhooks

Nuevo webhook:

Añadimos un nombre y copiamos la URL del webhook creado.
Lo añadimos en el plugin instalado y damos a guardar.

Y ahora Jenkins nos avisará cuándo haya un despliegue.
Si queremos añadirlo en un pipeline, tendremos que añadir este código en el pipeline. (lo añadimos despues de stages)
post { success { discordSend description: "Jenkins Pipeline Build", footer: "Despliegue realizado correctamente", link: env.BUILD_URL, result: currentBuild.currentResult, title: JOB_NAME, webhookURL: "Webhook URL" } failure { discordSend description: "Jenkins Pipeline Error", footer: "El despliegue ha fallado", link: env.BUILD_URL, result: currentBuild.currentResult, title: JOB_NAME, webhookURL: "Webhook URL" } }
En webhook URL indicamos la URL de webhook discord creada.
También podemos ocultar la URL del webhook usando jenkins:
Vamos a administrar Jenkins > Manage credentials

Pulsamos en Global:

Añadimos una nueva credencial de tipo Secret Text:

En secret añadimos la URL del webhook y en ID el nombre que vamos a utilizar para recuperarla en nuestro Jenkinsfile

Guardamos. Ahora para recuperar esta variable en el Jenkinsfile pondremos lo siguiente:
environment { DISCORD_WEBHOOK = credentials('WEBHOOK') }
Y lo usaremos llamando a esta variable de entorno:
post { success { discordSend description: "Jenkins Pipeline Build", footer: "Despliegue realizado correctamente", link: env.BUILD_URL, result: currentBuild.currentResult, title: JOB_NAME, webhookURL: "$DISCORD_WEBHOOK" } failure { discordSend description: "Jenkins Pipeline Error", footer: "El despliegue ha fallado", link: env.BUILD_URL, result: currentBuild.currentResult, title: JOB_NAME, webhookURL: "$DISCORD_WEBHOOK" } }

Ingeniero en Informática, Investigador, me encanta crear cosas o arreglarlas y darles una nueva vida. Escritor y poeta. Más de 20 APPs publicadas y un libro en Amazon.