En este ejercicio, configuraremos un pipeline básico de CI/CD utilizando Jenkins, una de las herramientas más populares en el ámbito de CI/CD. Este pipeline realizará las siguientes tareas:

  1. Clonar el repositorio desde GitHub.
  2. Construir el proyecto.
  3. Ejecutar pruebas automatizadas.
  4. Generar un artefacto (por ejemplo, un archivo JAR).
  5. Notificar el estado del build.

Paso 1: Preparación del Entorno

Requisitos Previos

  • Tener Jenkins instalado y en funcionamiento.
  • Tener un repositorio de GitHub con un proyecto simple (puede ser un proyecto Java, Node.js, etc.).
  • Tener configurado un agente de Jenkins (puede ser el mismo servidor donde está Jenkins).

Configuración de Jenkins

  1. Instalar los Plugins Necesarios:

    • Git Plugin
    • Pipeline Plugin
    • Email Extension Plugin (opcional, para notificaciones)
  2. Crear un Nuevo Job de Pipeline:

    • Navega a Jenkins Dashboard.
    • Haz clic en "New Item".
    • Introduce un nombre para el job (por ejemplo, "Pipeline Básico").
    • Selecciona "Pipeline" y haz clic en "OK".

Paso 2: Definir el Pipeline

Script del Pipeline

A continuación, se muestra un ejemplo de script para un pipeline básico en Jenkins. Este script se escribe en Groovy, el lenguaje de scripting que utiliza Jenkins para sus pipelines.

pipeline {
    agent any

    stages {
        stage('Clonar Repositorio') {
            steps {
                git 'https://github.com/tu-usuario/tu-repositorio.git'
            }
        }
        stage('Construir Proyecto') {
            steps {
                // Comando para construir el proyecto
                // Ejemplo para un proyecto Java con Maven:
                sh 'mvn clean install'
            }
        }
        stage('Ejecutar Pruebas') {
            steps {
                // Comando para ejecutar pruebas
                // Ejemplo para un proyecto Java con Maven:
                sh 'mvn test'
            }
        }
        stage('Generar Artefacto') {
            steps {
                // Comando para generar el artefacto
                // Ejemplo para un proyecto Java con Maven:
                archiveArtifacts artifacts: '**/target/*.jar', allowEmptyArchive: true
            }
        }
    }

    post {
        success {
            echo 'El build ha sido exitoso!'
        }
        failure {
            echo 'El build ha fallado.'
        }
    }
}

Explicación del Script

  • pipeline { ... }: Define el bloque principal del pipeline.
  • agent any: Indica que el pipeline puede ejecutarse en cualquier agente disponible.
  • stages { ... }: Contiene todos los stages del pipeline.
    • stage('Clonar Repositorio') { ... }: Clona el repositorio desde GitHub.
    • stage('Construir Proyecto') { ... }: Construye el proyecto utilizando Maven.
    • stage('Ejecutar Pruebas') { ... }: Ejecuta las pruebas del proyecto.
    • stage('Generar Artefacto') { ... }: Genera y archiva el artefacto resultante.
  • post { ... }: Define acciones a realizar después de que el pipeline se haya completado.
    • success { ... }: Acciones a realizar si el pipeline es exitoso.
    • failure { ... }: Acciones a realizar si el pipeline falla.

Paso 3: Ejecutar el Pipeline

  1. Guardar el Script:

    • En la configuración del job, desplázate hacia abajo hasta la sección "Pipeline".
    • Selecciona "Pipeline script" y pega el script anterior.
    • Haz clic en "Save".
  2. Ejecutar el Job:

    • En el dashboard del job, haz clic en "Build Now".
    • Observa la ejecución del pipeline en la consola de salida.

Ejercicio Práctico

Tarea

Configura un pipeline similar al anterior, pero adaptado a tu propio proyecto. Asegúrate de:

  • Clonar tu propio repositorio.
  • Utilizar los comandos de construcción y pruebas específicos de tu proyecto.
  • Generar y archivar los artefactos relevantes.

Solución

A continuación, se muestra un ejemplo de cómo podría verse el script adaptado para un proyecto Node.js:

pipeline {
    agent any

    stages {
        stage('Clonar Repositorio') {
            steps {
                git 'https://github.com/tu-usuario/tu-repositorio-nodejs.git'
            }
        }
        stage('Instalar Dependencias') {
            steps {
                sh 'npm install'
            }
        }
        stage('Ejecutar Pruebas') {
            steps {
                sh 'npm test'
            }
        }
        stage('Generar Artefacto') {
            steps {
                archiveArtifacts artifacts: '**/dist/*.js', allowEmptyArchive: true
            }
        }
    }

    post {
        success {
            echo 'El build ha sido exitoso!'
        }
        failure {
            echo 'El build ha fallado.'
        }
    }
}

Conclusión

En este ejercicio, hemos configurado un pipeline básico de CI/CD utilizando Jenkins. Hemos cubierto los pasos esenciales desde clonar un repositorio hasta generar un artefacto y notificar el estado del build. Este pipeline básico puede servir como base para pipelines más complejos y personalizados según las necesidades de tu proyecto.

Resumen

  • Configuración de Jenkins y creación de un job de pipeline.
  • Definición de un script de pipeline básico.
  • Ejecución y monitoreo del pipeline.
  • Adaptación del pipeline a proyectos específicos.

En el siguiente ejercicio, profundizaremos en la integración de pruebas automatizadas dentro del pipeline.

© Copyright 2024. Todos los derechos reservados