Cuando los ingenieros de software hablan de su servidor de “compilación”, ¿qué hace este servidor bajo el capó?

El servidor de compilación ejecuta el proceso de compilación y, a menudo, también el conjunto de pruebas completo. Las operaciones generalmente se componen de los siguientes pasos:

  1. Verifique la última versión del código fuente desde un repositorio de código remoto, en el cual los desarrolladores del equipo con frecuencia comprometen su trabajo / código.
  2. Ejecuta el proceso que convierte (compila) el código fuente en código ejecutable, ya sea código binario o bytecode en el caso de lenguajes de máquinas virtuales (Java, Scala, C #, etc.). Puede haber uno o varios componentes / ejecutables que se deben producir a partir del código fuente, el servidor de compilación debe crear el conjunto completo de componentes que comprende un sistema. (Cualquier error de compilación en esta etapa detendrá el resto del proceso de construcción, los desarrolladores y las partes interesadas serán notificados por correo electrónico, texto, fuente RSS, etc.)
  3. La producción de ejecutables también podría incluir el empaquetado de código / activos no binarios, como scripts, textos; y de ejecutables binarios de terceros (generalmente llamados bibliotecas). El proceso de empaquetado a menudo separa el código de prueba del código de producción en diferentes paquetes.
  4. Con los ejecutables producidos, el servidor ahora está listo para ejecutar todos los casos de prueba de unidad, casos de prueba funcionales y casos de prueba de regresión. En un sistema grande, podría haber miles de casos de prueba para ejecutar y evaluar los resultados de la prueba. Al final de la ejecución de la prueba, generalmente se producirá algún tipo de informe de prueba y se enviarán notificaciones (correo electrónico, fuente RSS, etc.) al equipo de desarrollo y a otras partes interesadas.
  5. Tras un resultado de prueba exitoso, los ejecutables se pueden publicar en una ubicación común (sitio web, servidor FTP, etc.). Para una aplicación web, también podría implicar la implementación automática de ejecutables en un servidor de aplicaciones.
  6. La compilación programada por la noche bien podría publicarse automáticamente en un sitio público accesible para el consumo de la comunidad. Aquí se publica un ejemplo como Eclipse nightly build: Eclipse Project Download

Estas son las actividades típicas que ocurren en un servidor de compilación, por supuesto, hay variaciones y adiciones dependiendo del tipo de código fuente y tipo de aplicaciones (aplicación de escritorio, aplicación móvil, aplicación web, etc.). Y hay muchos servidores y sistemas de compilación modernos que automatizan todos los detalles del proceso de construcción, empaquetado, prueba e implementación para lograr una entrega continua, lo cual es crucial para mejorar enormemente la calidad del producto y el tiempo de comercialización.

Ejemplos de servidor de compilación:
1. Integración continua y servidor de compilación – Bamboo
2. ¡Bienvenido a Jenkins CI!
3. Integración continua de Hudson

El servidor no es más que una computadora poderosa con mucho disco duro y RAM. Y todas las computadoras están formadas por 1s (ups) y 0s (downs) de voltaje DC.

More Interesting

¿Cuál es el diseño de base de datos más complejo?

¿Qué plan de estudios debo seguir para convertirme en ingeniero de software, especialmente en el aprendizaje automático, después de aprender una cantidad suficiente de Python?

¿Cuáles son las diez principales cosas que están mal en la industria del software?

¿Cuál es la mejor manera de organizar T-SQL en términos de patrones de reutilización / comprobabilidad / diseño?

Cómo entender cómo es el software Docker

¿Cómo evitan los ingenieros experimentados en las startups el estancamiento debido al exceso de problemas operativos?

¿Es importante para un principiante escribir código claro y legible?

¿Cuántos años llevaría desarrollar la informática de voltaje variable para convertirse en una tecnología de consumo para el mercado masivo?

¿Puede un licenciado en ingeniería biomédica hacer una maestría en ingeniería de software con un promedio de 3.23?

Cómo familiarizarme con Unix / Linux, especialmente el terminal, si planeo trabajar en la industria del software

¿Cuáles son los títulos requeridos para la ingeniería de software?

¿Cuál fue tu '¡Ajá!' momento con el aprendizaje automático / ciencia de datos?

Escriba un programa que tome una matriz de enteros y devuelva una matriz de los productos de todos los enteros, excepto en el índice. Entrada: [1, 7, 3, 4] Salida: [84, 12, 28, 21] La siguiente será la forma de cálculo: [7 * 3 * 4, 1 * 3 * 4, 1 * 7 * 4, 1 * 7 * 3] NOTA: debe hacer esto en O (n) tiempo y O (n) espacio.

¿Cuál es el signo del equipo de desarrollo de software mal administrado?

¿Cuál es el mejor nombre de software para crear vínculos de retroceso?