Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 

Repository files navigation

jenkins-shared-library

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.

Notificaciones

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.

Utilidades de Docker

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.

Credenciales requeridas

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.

Uso en Jenkinsfile

@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)
        }
    }
}

About

Jenkins pipelines used functions

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages