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:
- Clonar el repositorio desde GitHub.
- Construir el proyecto.
- Ejecutar pruebas automatizadas.
- Generar un artefacto (por ejemplo, un archivo JAR).
- 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
-
Instalar los Plugins Necesarios:
- Git Plugin
- Pipeline Plugin
- Email Extension Plugin (opcional, para notificaciones)
-
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
-
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".
-
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.
Curso de CI/CD: Integración y Despliegue Continuo
Módulo 1: Introducción a CI/CD
Módulo 2: Integración Continua (CI)
- Introducción a la Integración Continua
- Configuración de un Entorno de CI
- Automatización de la Construcción
- Pruebas Automatizadas
- Integración con Control de Versiones
Módulo 3: Despliegue Continuo (CD)
- Introducción al Despliegue Continuo
- Automatización del Despliegue
- Estrategias de Despliegue
- Monitoreo y Retroalimentación
Módulo 4: Prácticas Avanzadas de CI/CD
Módulo 5: Implementación de CI/CD en Proyectos Reales
Módulo 6: Herramientas y Tecnologías
Módulo 7: Ejercicios Prácticos
- Ejercicio 1: Configuración de un Pipeline Básico
- Ejercicio 2: Integración de Pruebas Automatizadas
- Ejercicio 3: Despliegue en un Entorno de Producción
- Ejercicio 4: Monitoreo y Retroalimentación
