Automatización de la construcción

Creación de software de forma desatendida

La automatización de la compilación es la práctica de compilar sistemas de software de una manera relativamente desatendida. La compilación se configura para ejecutarse con una interacción mínima o nula del desarrollador de software y sin utilizar la computadora personal del desarrollador . La automatización de la compilación abarca el acto de configurar el sistema de compilación y el sistema resultante en sí.

La automatización de la compilación abarca tanto la secuenciación de operaciones de compilación a través de herramientas de interfaz no interactivas como la ejecución de compilaciones en un servidor compartido . [1]

Herramientas

Las herramientas de automatización de compilación permiten secuenciar las tareas de compilación de software mediante una interfaz no interactiva. Se pueden utilizar herramientas existentes, como Make, mediante un archivo de configuración personalizado o parámetros de línea de comandos. También se pueden utilizar herramientas personalizadas, como scripts de shell.

Algunas herramientas, como los scripts de shell , son de programación declarativa orientada a tareas . Codifican secuencias de comandos para ejecutar con una lógica condicional mínima.

Algunas herramientas, como Make, están orientadas al producto. Crean un producto, también conocido como objetivo, en función de dependencias configuradas. [2]

Servidores

Un servidor de compilación es un servidor configurado para ejecutar compilaciones. A diferencia de una computadora personal, un servidor permite un entorno de compilación más consistente y disponible.

Tradicionalmente, un servidor de compilación era una computadora local dedicada como recurso compartido en lugar de usarse como una computadora personal. Hoy en día, existen muchos sitios web de computación en la nube y software como servicio (SaaS) para compilar.

Sin un servidor de compilación, la compilación generalmente depende de que los desarrolladores utilicen sus computadoras personales, lo que tiene muchos inconvenientes, entre los que se incluyen los siguientes: Los desarrolladores que saben cómo compilar pueden estar de vacaciones. La máquina del desarrollador puede tener un problema que impida la compilación. La máquina del desarrollador puede tener otro software instalado que interfiera con la compilación adecuada.

Un servidor de integración continua es un servidor de compilación que se configura para compilar de forma relativamente frecuente, generalmente en cada confirmación de código. Un servidor de compilación también puede incorporarse a una herramienta ARA o ALM .

Las opciones típicas de activación de compilación incluyen:

Integración continua y entrega continua

La automatización del proceso de compilación es un paso necesario para implementar la integración continua y la entrega continua (CI/CD), todas ellas consideradas como las mejores prácticas para el desarrollo de software. [3] [ ¿Cómo? ]

Ventajas

Las ventajas de la automatización de la compilación incluyen: [4]

  • Puede ahorrar tiempo y dinero a largo plazo.
  • Permite la integración, entrega y pruebas continuas.
  • Un proceso de construcción más consistente
  • Puede optimizar el proceso de construcción, reduciendo el tiempo y las tareas redundantes.
  • Reduce la dependencia del personal clave y sus computadoras personales
  • Puede automatizar la recopilación del historial de compilación

Véase también

Referencias

  1. ^ Ceruzzi, Paul E. (2003). Una historia de la informática moderna. The MIT Press. ISBN 978-0-262-53203-7.
  2. ^ Clark, Mike (2004). Automatización de proyectos pragmáticos: cómo crear, implementar y monitorear aplicaciones Java . The Pragmatic Programmers. ISBN 978-0-9745140-3-1.
  3. ^ Bashan, Shmuel; Bellagio, David E. (2011). Gestión de elementos de trabajo con IBM Rational ClearQuest y Jazz: una guía de personalización . IBM Press. ISBN 978-0-13-700179-8.
  4. ^ "Copia archivada" (PDF) . Archivado desde el original (PDF) el 23 de noviembre de 2008. Consultado el 19 de septiembre de 2008 .{{cite web}}: CS1 maint: archived copy as title (link)
Retrieved from "https://en.wikipedia.org/w/index.php?title=Build_automation&oldid=1251107507"