12. Escribir guiones de compilación

La automatización de la construcción es un pilar fundamental en la práctica de DevOps y en los procesos de Integración Continua (CI) y Entrega Continua (CD). Un script de compilación es un conjunto de instrucciones que automatiza la compilación del código fuente en un artefacto ejecutable, como un archivo .jar o .exe, una imagen de contenedor o cualquier otro formato relevante para el proyecto. Este proceso incluye compilar el código, ejecutar pruebas, generar informes de calidad del código y empaquetar el artefacto final.

Principios básicos

Antes de escribir un script de compilación, es importante comprender algunos conceptos básicos:

  • Idempotencia: el script debe poder ejecutarse varias veces sin causar efectos secundarios no deseados. Cada ejecución debe producir el mismo resultado, asegurando la coherencia.
  • Automatización completa: Desde la obtención del código fuente hasta la generación del artefacto, todo debe automatizarse, sin intervención manual.
  • Configuración como código: Todas las configuraciones deben versionarse junto con el código, lo que permite la trazabilidad y una fácil gestión de cambios.
  • Herramientas de compilación: elija herramientas de compilación adecuadas a la tecnología y la complejidad del proyecto, como Maven, Gradle, Ant para Java, MSBuild para .NET o scripts personalizados.

Elegir la herramienta de compilación

Seleccione una herramienta de compilación que se alinee con las tecnologías utilizadas en el proyecto y la experiencia del equipo. Las herramientas populares incluyen:

  • Maven: una herramienta de automatización de compilación basada en XML para proyectos Java que gestiona las dependencias y el ciclo de vida de la compilación.
  • Gradle: una herramienta de automatización de compilación que utiliza un lenguaje basado en Groovy o Kotlin, que ofrece flexibilidad y rendimiento.
  • Make: una herramienta clásica que utiliza Makefiles para definir reglas de compilación para proyectos C/C++.
  • npm/yarn: administradores de paquetes y herramientas de compilación para proyectos de JavaScript y TypeScript.

Componentes de un script de compilación

Un script de compilación típico puede incluir los siguientes componentes:

  • Pago del código: Obtención del código fuente de un repositorio de control de versiones.
  • Gestión de dependencias: Instalación y actualización de bibliotecas y módulos necesarios para la compilación.
  • Compilación: Transformación del código fuente en código binario o código de bytes.
  • Ejecución de prueba: ejecute pruebas unitarias, de integración y otras pruebas de calidad del código.
  • Análisis de Código Estático: Generación de informes sobre patrones de código, cobertura de pruebas y posibles vulnerabilidades.
  • Embalaje: Creación del artefacto final, como un .jar o .war para aplicaciones Java.
  • Distribución: transferencia del artefacto a un repositorio de artefactos o directamente a un entorno de ensayo o producción.

Prácticas recomendadas para escribir scripts de compilación

Para garantizar la eficacia de los scripts de compilación, es importante seguir algunas buenas prácticas:

  • Modularidad: divida el script en pasos claros y reutilizables para que sea más fácil de mantener y comprender.
  • Documentación: Comente el código y proporcione documentación para explicar el propósito y el funcionamiento de cada parte del script.
  • Manejo de errores: implemente una lógica sólida para manejar fallas y garantizar que el proceso de compilación se pueda recuperar o detener de manera controlada.
  • Parametrización: utilice parámetros y variables de entorno para hacer que el script sea flexible y adaptable a diferentes contextos.
  • Registros e informes: genere registros e informes detallados para facilitar el diagnóstico de problemas y la toma de decisiones basada en datos.

Integración con herramientas CI/CD

Los scripts de compilación deben diseñarse para integrarse fácilmente con herramientas CI/CD como Jenkins, GitLab CI, CircleCI, entre otras. Esto permite que el proceso de compilación se active automáticamente con cada confirmación o solicitud de extracción, lo que facilita la detección temprana de problemas y la entrega continua de software.

Ejemplo de un script de compilación simple

# Ejemplo de script de compilación para un proyecto Java utilizando Maven

# Pago del código fuente
clon de git https://github.com/seuprojeto/meuprojeto.git
cd mi proyecto

# Ejecutando Maven para limpiar, compilar y empaquetar el proyecto
paquete limpio mvn

# Ejecución de pruebas y generación de informes.
prueba mvn
mvnsito

# Copiando el artefacto al directorio de distribución.
cp target/miproyecto-1.0-SNAPSHOT.jar /ruta/a/distribución/directorio

# Terminando el guión
echo "La construcción y el empaquetado se completaron correctamente".

Este ejemplo está simplificado y para un proyecto real, sería necesario incluir pasos y lógica adicionales para el manejo de errores, parametrización e integración con otras herramientas.

Conclusión

Escribir scripts de compilación eficientes y confiables es crucial para el éxito de los procesos de CI/CD. Al seguir las mejores prácticas y principios de DevOps, los equipos pueden garantizar que los artefactos de software se generen de manera consistente, lo que permite entregas rápidas y confiables. La automatización de la compilación es una habilidad esencial para cualquier ingeniero de DevOps y debe mejorarse continuamente para mantenerse al día con las tecnologías cambiantes y las demandas del mercado.

Ahora responde el ejercicio sobre el contenido:

¿Cuál de los siguientes principios NO se menciona en el texto como uno de los principios básicos al escribir un script de compilación?

¡Tienes razón! Felicitaciones, ahora pasa a la página siguiente.

¡Tú error! Inténtalo de nuevo.

Imagen del artículo Gestión de artefactos y dependencias.

Siguiente página del libro electrónico gratuito:

28Gestión de artefactos y dependencias.

4 minutos

¡Obtén tu certificado para este curso gratis! descargando la aplicación Cursa y leyendo el libro electrónico allí. ¡Disponible en Google Play o App Store!

Disponible en Google Play Disponible en App Store

+ 6,5 millones
estudiantes

Certificado gratuito y
válido con código QR

48 mil ejercicios
gratis

Calificación de 4.8/5
en tiendas de aplicaciones

Cursos gratuitos de
vídeo, audio y texto.