Automatización de construcción - Build automation

La automatización de compilaciones es el proceso de automatizar la creación de una compilación de software y los procesos asociados que incluyen: compilar código fuente de computadora en código binario , empaquetar código binario y ejecutar pruebas automatizadas .

Descripción general

Históricamente, la automatización de la compilación se logró a través de archivos MAKE . Hoy en día, existen dos categorías generales de herramientas:

Utilidad de automatización de construcción
Esto incluye utilidades como Make , Rake , CMake , MSBuild , Ant , Maven o Gradle (Java), etc. Su propósito principal es generar artefactos de construcción a través de actividades como compilar y vincular el código fuente.
Servidores de automatización de construcción
Estas son herramientas generales basadas en la web que ejecutan utilidades de automatización de compilación de forma programada o activada; un servidor de integración continua es un tipo de servidor de automatización de compilación.

Dependiendo del nivel de automatización, es posible la siguiente clasificación:

Se puede encontrar una lista de software para cada uno en la lista de software de automatización de compilación .

Utilidades de automatización de edificios

Las utilidades de automatización de construcción permiten la automatización de tareas simples y repetibles. Al utilizar la herramienta, calculará cómo alcanzar la meta ejecutando tareas en el orden correcto y específico y ejecutando cada tarea. Las dos formas en que se diferencian las herramientas de construcción son las orientadas a tareas y las orientadas a productos. Las herramientas orientadas a tareas describen la dependencia de las redes en términos de una tarea determinada específica y las herramientas orientadas a productos describen las cosas en términos de los productos que generan.

Servidores de automatización de construcción

Aunque los servidores de compilación existían mucho antes que los servidores de integración continua, generalmente son sinónimos de servidores de integración continua, sin embargo, un servidor de compilación también puede incorporarse a una herramienta ARA o ALM .

Tipos de servidor

  • Automatización bajo demanda , como un usuario que ejecuta un script en la línea de comandos.
  • Automatización programada , como un servidor de integración continua que ejecuta una compilación nocturna
  • Automatización activada , como un servidor de integración continua que ejecuta una compilación en cada compromiso con un sistema de control de versiones.

Automatización de construcción distribuida

La automatización se logra mediante el uso de una granja de compilación para la compilación distribuida o la ejecución del paso de la utilidad. El proceso de compilación distribuida debe tener inteligencia de máquina para comprender las dependencias del código fuente para ejecutar la compilación distribuida.

Relación con la entrega continua y la integración continua

La automatización de la construcción se considera el primer paso para avanzar hacia la implementación de una cultura de entrega continua y DevOps . La automatización de la construcción combinada con la integración continua , la implementación , la automatización del lanzamiento de aplicaciones y muchos otros procesos ayudan a que una organización avance en el establecimiento de mejores prácticas de entrega de software.

Ventajas

Las ventajas de la automatización de compilación para proyectos de desarrollo de software incluyen

  • Una condición previa necesaria para la integración continua y las pruebas continuas
  • Mejorar la calidad del producto.
  • Acelere el procesamiento de compilación y enlace
  • Elimina tareas redundantes
  • Minimizar las "construcciones incorrectas"
  • Elimina las dependencias del personal clave
  • Tener historial de compilaciones y lanzamientos para investigar problemas.
  • Ahorre tiempo y dinero, debido a las razones enumeradas anteriormente.

Ver también

Referencias