Updated Jenkinsfile to be pure declarative
testing/og-dhcp-API/pipeline/head There was a failure building this commit
Details
testing/og-dhcp-API/pipeline/head There was a failure building this commit
Details
parent
a9df18a987
commit
dafcb79fc6
|
@ -61,61 +61,29 @@ pipeline {
|
|||
}
|
||||
}
|
||||
always {
|
||||
// Siempre se ejecutará, independientemente del resultado
|
||||
script {
|
||||
def userCause = currentBuild.rawBuild.getCause(hudson.model.Cause$UserIdCause)
|
||||
|
||||
if (userCause != null) {
|
||||
// Si fue lanzado manualmente, obtener el usuario y su correo desde las propiedades de Jenkins
|
||||
def userId = userCause.getUserId()
|
||||
def userEmail = getUserEmail(userId)
|
||||
|
||||
if (userEmail) {
|
||||
echo "El correo del usuario que lanzó el build manualmente es: ${userEmail}"
|
||||
// Elimina la entrada del /etc/hosts
|
||||
sh "echo '$QINDEL_PASS' | sudo -S sed -i '/api-test/d' /etc/hosts"
|
||||
def recipientEmail = env.BUILD_USER_EMAIL ?: getCommitterEmail()
|
||||
|
||||
mail to: recipientEmail,
|
||||
subject: "Jenkins Job Completed: ${env.JOB_NAME} #${env.BUILD_NUMBER}",
|
||||
body: """
|
||||
El job '${env.JOB_NAME}' con número de build ${env.BUILD_NUMBER} ha finalizado.
|
||||
|
||||
// Enviar correo al usuario que lanzó el build manualmente
|
||||
mail to: "${userEmail}",
|
||||
subject: "Jenkins Job Completed (Manual): ${env.JOB_NAME} #${env.BUILD_NUMBER}",
|
||||
body: """
|
||||
El job '${env.JOB_NAME}' con número de build ${env.BUILD_NUMBER} ha finalizado (ejecutado manualmente).
|
||||
|
||||
Estado: ${currentBuild.currentResult}
|
||||
|
||||
Revisa los detalles del build en: ${env.BUILD_URL}
|
||||
"""
|
||||
} else {
|
||||
echo "No se pudo encontrar un correo electrónico para el usuario: ${userId}"
|
||||
}
|
||||
} else {
|
||||
// Si fue lanzado automáticamente, obtener el correo del committer
|
||||
def committerEmail = sh(
|
||||
script: 'git log -1 --pretty=format:"%ae"',
|
||||
returnStdout: true
|
||||
).trim()
|
||||
|
||||
echo "El build fue lanzado automáticamente. Correo del committer: ${committerEmail}"
|
||||
|
||||
// Enviar correo al committer
|
||||
mail to: "${committerEmail}",
|
||||
subject: "Jenkins Job Completed (Automático): ${env.JOB_NAME} #${env.BUILD_NUMBER}",
|
||||
body: """
|
||||
El job '${env.JOB_NAME}' con número de build ${env.BUILD_NUMBER} ha finalizado (ejecutado automáticamente).
|
||||
|
||||
Estado: ${currentBuild.currentResult}
|
||||
|
||||
Revisa los detalles del build en: ${env.BUILD_URL}
|
||||
"""
|
||||
}
|
||||
Estado: ${currentBuild.currentResult}
|
||||
|
||||
Revisa los detalles del build en: ${env.BUILD_URL}
|
||||
"""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@NonCPS
|
||||
def getUserEmail(userId) {
|
||||
def jenkinsInstance = currentBuild.rawBuild.getParent().getParent()
|
||||
if (jenkinsInstance != null) {
|
||||
def user = jenkinsInstance.getUser(userId)
|
||||
return user.getProperty(jenkins.plugins.mailer.tasks.Mailer.UserProperty)?.getAddress()
|
||||
}
|
||||
return null
|
||||
def getCommitterEmail() {
|
||||
return sh(
|
||||
script: 'git log -1 --pretty=format:"%ae"',
|
||||
returnStdout: true
|
||||
).trim()
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue