Jenkins Shared Library con utilidades reutilizables para pipelines de CI/CD.
Funciones disponibles (vars/)
Publicación de informes de calidad
Función
Parámetros
Descripción
publishCheckstyleReport
checkstyleFile
Publica el informe de Checkstyle usando el plugin Warnings NG.
publishCloverReport
cloverReportDir, cloverReportFileName
Publica el informe de cobertura de código generado por Clover.
publishCpdReport
cpdFile
Publica el informe de duplicación de código (CPD) usando el plugin Warnings NG.
publishDeptracGraph
deptracDir, deptracFile
Publica el grafo de dependencias generado por Deptrac como informe HTML en Jenkins.
publishJunitReport
junitFile
Publica los resultados de tests JUnit.
Función
Parámetros
Descripción
slackSendMessage
buildStatus, time
Envía un mensaje a Slack con el resultado del build (SUCCESS / UNSTABLE / FAILURE) y el tiempo transcurrido.
notifyCompassDeployment
compassCloudId, componentId, state, environment, startedAt, completedAt, pipelineName
Notifica un evento de despliegue al componente correspondiente en Atlassian Compass. Mapea automáticamente el entorno a DEVELOPMENT, STAGING o PRODUCTION.
notifyJiraDeployment
cloudId, componentId, state, environment, startedAt, completedAt, pipelineName
Notifica un evento de despliegue a Jira Deployments API. Mapea el entorno a development, staging o production.
Función
Parámetros
Descripción
checkContainerStatus
container, step
Inspecciona el exit code de un contenedor Docker y pone el build en FAILURE si es distinto de 0. Almacena el resultado en env.<step>_result.
Las funciones de notificación a Atlassian requieren las siguientes credenciales configuradas en Jenkins:
COMPASS_BASIC_AUTH — usuario y token de Atlassian (Basic Auth). Usado por notifyCompassDeployment y notifyJiraDeployment.
@Library (' jenkins-shared-library' ) _
pipeline {
agent any
stages {
stage(' Test' ) {
steps {
sh ' mvn test'
publishJunitReport(' target/surefire-reports/*.xml' )
publishCheckstyleReport(' target/checkstyle-result.xml' )
publishCloverReport(' target/site/clover' , ' clover.xml' )
}
}
stage(' Deploy' ) {
steps {
// ... deploy logic ...
notifyCompassDeployment(
' your-cloud-id' ,
' ari:cloud:compass:...' ,
' SUCCESSFUL' ,
' production' ,
' 2026-01-01T10:00:00Z' ,
' 2026-01-01T10:05:00Z' ,
env. JOB_NAME
)
}
}
}
post {
always {
slackSendMessage(currentBuild. result, currentBuild. durationString)
}
}
}