Varias veces en mi carrera, he trabajado en un grupo de software que determinamos que
a) Necesitábamos un sistema de construcción/prueba
b) Debemos escribir nuestra propia
c) Nosotros puede tener un desarrollador gastar una semana, hacerlo y no debería tener que volver a tocarloIdioma Agnóstico Construir Sistema de Gestión
Cada vez, esto ha resultado en un sistema que solo parece funcionar para la persona que lo escribió y requiere su atención constante . He pasado tiempo en varias ocasiones buscando una herramienta que pueda tomar que sirva a nuestras necesidades, pero que venga con las manos vacías. Generalmente, las herramientas como este servidor son un mercado muy estrecho. Estoy en el punto nuevamente de necesitar algo como esto. ¿Hay algo por ahí, o lo escribimos de nuevo?
Éstos son mis requisitos en orden de prioridad (el último pocos son simplemente agradable tener):
capacidad de manejar una acumulación de varios proyectos. Tenemos varios componentes que proporcionan cosas que otros componentes usan y usan cosas de otros componentes. Un desarrollador debería poder verificar 1 componente y hacer cambios sin tener que construir el mundo. Las dependencias fuera del proyecto se deben extraer automáticamente. Entonces, una forma de poder empujar y tirar los objetos construidos a un servidor es fundamental para esto. Otro aspecto de esto es la capacidad de poder desplegar todas las dependencias a un directorio local para el desarrollo en el camino.
No se preocupe exactamente de cómo se construyen las cosas. Esto puede sonar extraño, pero no quiero que el sistema de compilación se preocupe por compilar mi código. Ya hay excelentes herramientas que hacen esto para cada idioma: Ant, CMake, etc. Solo quiero decirles cómo llamar para que las cosas se desarrollen y de qué producto debería preocuparse. De esta forma, el Proyecto A puede estar en Java, el Proyecto B puede estar en C++, se entiende la idea.
tener alguna manera de ejecutar las pruebas en la salida
muestran los resultados actuales de construcción/prueba de una página web
correo electrónico los resultados
Integración con RCS (usamos SVN)
creo que va a tener que aclarar por qué cosas como guiones y/o Hormiga, msbuild, etc. están a la altura. También parece indicar que desea almacenar binarios en el control de versiones o al menos en un servidor de compilación. ¿Por qué no exponer los resultados de la máquina de compilación en un sitio ftp sin la etiqueta/revisión? – Tim