Pruebas Automatizadas con Docker y Jenkins en CI/CD

Clase 9 de 21Curso Profesional de DevOps

Resumen

¿Cómo correr pruebas usando Docker y Jenkins?

En el emocionante mundo del despliegue y desarrollo de software, Docker y Jenkins son herramientas fundamentales que nos permiten automatizar procesos y gestionar nuestros proyectos de manera eficiente. A continuación, desglosaremos cómo utilizar Docker tanto localmente como en Jenkins para ejecutar pruebas automáticas y asegurar que nuestro código esté listo para producción.

¿Qué necesitas saber antes de comenzar?

Para entender y aprovechar al máximo esta guía, es esencial tener conocimientos básicos de Jenkins. Si aún no lo dominas, se recomienda tomar el curso de Jenkins disponible en Platzi. Es un recurso valioso que facilitará tu recorrido en la automatización y mejora continua dentro del ciclo de vida del desarrollo de software.

¿Cómo instalar Docker y configurarlo para Jenkins?

Instalación en Ubuntu:

  1. Instalación del repositorio: Antes de instalar Docker, asegúrate de que los repositorios estén correctamente configurados.
  2. Instalación de Docker: Esta etapa consiste en instalar Docker propiamente dicho en tu sistema.
  3. Configuración crucial: Añadir al usuario Jenkins al grupo de Docker.
# Instala el repositorio
sudo apt-get install \ 
    ca-certificates \ 
    curl \ 
    gnupg 

# Instala Docker
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

# Añadir a Jenkins al grupo de Docker
sudo usermod -aG docker jenkins

# Reiniciar el servicio de Jenkins
sudo service jenkins restart

Al completar estos pasos, Jenkins tendrá el permiso necesario para correr Docker. Esto evita problemas comunes respecto a permisos y garantiza que puedas ejecutar contenedores sin inconvenientes.

¿Cómo correr pruebas localmente usando Docker?

Una vez tienes Docker instalado, es hora de ponerlo en movimiento para ejecutar pruebas:

  1. Construir la imagen de Docker:
docker build -t mi_repositorio/webApp:tag .
  1. Ejecutar las pruebas:
docker run -it mi_repositorio/webApp:tag npm test

Este comando ejecutará las pruebas en el contenedor. El uso de npm test sobrescribe el comando definido en el Dockerfile, permitiéndote correr exactamente lo que necesitas.

¿Cómo integrar Docker con Jenkins para pruebas continuas?

Jenkins permite la automatización de procesos a través de pipelines, los cuales detallan cada paso que debe ejecutar, desde construir la imagen hasta correr las pruebas.

Definición del Jenkinsfile:

pipeline {
    agent any
    environment {
        ARTIFACT_ID = "mi_repositorio/webApp:\${BUILD_NUMBER}"
    }
    stages {
        stage('Build') {
            steps {
                script {
                    docker.build(ARTIFACT_ID)
                }
            }
        }
        stage('Test') {
            steps {
                script {
                    sh 'docker run mi_repositorio/webApp:tag npm test'
                }
            }
        }
    }
}

¿Por qué construir imágenes en Jenkins y no localmente?

Construir imágenes en Jenkins asegura que el caché y las imágenes estén centralizadas. Jenkins se convierte en el punto de referencia para el estado de nuestro código, facilitando la colaboración y la transparencia entre los equipos.

¿Cómo configurar Jenkins para que ejecute los pasos definidos en Jenkinsfile?

  1. Crear un nuevo proyecto en Jenkins:

    • Selecciona "Pipeline Multibranch".
    • Asocia el archivo Jenkinsfile al proyecto según lo explicado en el curso de Jenkins.
  2. Ejecutar el Pipeline:

    • Accede al proyecto.
    • Corre las etapas definidas verificando que todo funcione correctamente.

A través de estos pasos, fomentamos una práctica de automatización estándar, asegurando que nuestro código pase todas las pruebas antes de llegar a producción. ¡Empieza a implementar estas estrategias hoy mismo y lleva tus proyectos al siguiente nivel!