En este tema, aprenderemos cómo configurar una pipeline de Entrega Continua (CD) en Jenkins. La Entrega Continua es una práctica de desarrollo de software en la que el código se construye, prueba y despliega automáticamente en un entorno de producción o preproducción. Esto permite a los equipos de desarrollo entregar software de manera más rápida y confiable.

Objetivos de Aprendizaje

  • Entender los conceptos básicos de una pipeline de CD.
  • Configurar una pipeline de CD en Jenkins.
  • Integrar pruebas automatizadas en la pipeline.
  • Desplegar automáticamente a un entorno de producción o preproducción.

Conceptos Básicos de una Pipeline de CD

Una pipeline de CD generalmente incluye los siguientes pasos:

  1. Construcción: Compilar el código fuente y generar artefactos.
  2. Pruebas: Ejecutar pruebas automatizadas para asegurar la calidad del código.
  3. Despliegue: Desplegar los artefactos en un entorno de producción o preproducción.

Configuración de una Pipeline de CD en Jenkins

Paso 1: Crear un Nuevo Trabajo de Pipeline

  1. Abre Jenkins y navega al tablero principal.
  2. Haz clic en "Nuevo Item" (New Item).
  3. Introduce un nombre para el trabajo, selecciona "Pipeline" y haz clic en "OK".

Paso 2: Definir la Pipeline en el Jenkinsfile

Un Jenkinsfile es un archivo que contiene la definición de la pipeline como código. Aquí hay un ejemplo básico de un Jenkinsfile para una pipeline de CD:

pipeline {
    agent any

    stages {
        stage('Build') {
            steps {
                echo 'Building...'
                // Aquí irían los comandos para compilar el código
            }
        }
        stage('Test') {
            steps {
                echo 'Testing...'
                // Aquí irían los comandos para ejecutar las pruebas
            }
        }
        stage('Deploy') {
            steps {
                echo 'Deploying...'
                // Aquí irían los comandos para desplegar el código
            }
        }
    }
}

Paso 3: Configurar el Repositorio de Código Fuente

  1. En la configuración del trabajo, desplázate hasta la sección "Pipeline".
  2. Selecciona "Pipeline script from SCM".
  3. Configura el sistema de control de versiones (por ejemplo, Git) y proporciona la URL del repositorio y la rama donde se encuentra el Jenkinsfile.

Paso 4: Integrar Pruebas Automatizadas

Para integrar pruebas automatizadas, puedes usar herramientas como JUnit, Selenium, etc. Aquí hay un ejemplo de cómo integrar pruebas JUnit en la pipeline:

pipeline {
    agent any

    stages {
        stage('Build') {
            steps {
                echo 'Building...'
                // Comandos para compilar el código
            }
        }
        stage('Test') {
            steps {
                echo 'Testing...'
                // Comandos para ejecutar las pruebas
                junit 'target/test-results/*.xml'
            }
        }
        stage('Deploy') {
            steps {
                echo 'Deploying...'
                // Comandos para desplegar el código
            }
        }
    }
}

Paso 5: Desplegar Automáticamente

El despliegue automático puede variar dependiendo del entorno y las herramientas que estés utilizando. Aquí hay un ejemplo de cómo desplegar a un servidor usando SSH:

pipeline {
    agent any

    stages {
        stage('Build') {
            steps {
                echo 'Building...'
                // Comandos para compilar el código
            }
        }
        stage('Test') {
            steps {
                echo 'Testing...'
                // Comandos para ejecutar las pruebas
                junit 'target/test-results/*.xml'
            }
        }
        stage('Deploy') {
            steps {
                echo 'Deploying...'
                sshagent(['my-ssh-credentials']) {
                    sh 'scp target/my-app.jar user@server:/path/to/deploy'
                    sh 'ssh user@server "java -jar /path/to/deploy/my-app.jar"'
                }
            }
        }
    }
}

Ejercicio Práctico

Ejercicio 1: Crear una Pipeline de CD Básica

  1. Crea un nuevo trabajo de pipeline en Jenkins.
  2. Define un Jenkinsfile que incluya las etapas de construcción, pruebas y despliegue.
  3. Configura el repositorio de código fuente.
  4. Integra pruebas automatizadas usando JUnit.
  5. Configura el despliegue automático a un servidor.

Solución del Ejercicio 1

pipeline {
    agent any

    stages {
        stage('Build') {
            steps {
                echo 'Building...'
                // Comandos para compilar el código
            }
        }
        stage('Test') {
            steps {
                echo 'Testing...'
                // Comandos para ejecutar las pruebas
                junit 'target/test-results/*.xml'
            }
        }
        stage('Deploy') {
            steps {
                echo 'Deploying...'
                sshagent(['my-ssh-credentials']) {
                    sh 'scp target/my-app.jar user@server:/path/to/deploy'
                    sh 'ssh user@server "java -jar /path/to/deploy/my-app.jar"'
                }
            }
        }
    }
}

Resumen

En esta sección, hemos aprendido cómo configurar una pipeline de CD en Jenkins. Hemos cubierto los conceptos básicos de una pipeline de CD, cómo definir una pipeline en un Jenkinsfile, cómo integrar pruebas automatizadas y cómo desplegar automáticamente a un entorno de producción o preproducción. Con estos conocimientos, estarás preparado para implementar pipelines de CD efectivas y eficientes en tus proyectos.

En el próximo tema, exploraremos cómo automatizar despliegues en mayor detalle, incluyendo estrategias de despliegue y herramientas avanzadas.

Jenkins: De Principiante a Avanzado

Módulo 1: Introducción a Jenkins

Módulo 2: Conceptos Básicos de Jenkins

Módulo 3: Pipelines de Jenkins

Módulo 4: Pipelines Avanzadas de Jenkins

Módulo 5: Administración de Jenkins

Módulo 6: Integrando Jenkins

Módulo 7: Jenkins para Integración Continua y Entrega Continua (CI/CD)

Módulo 8: Temas Avanzados de Jenkins

Módulo 9: Mejores Prácticas y Solución de Problemas en Jenkins

© Copyright 2024. Todos los derechos reservados