De la prueba de joel :
¿Se puede hacer una acumulación en un solo paso?
Tengo que decir que no puedo. Actualmente estoy trabajando en una aplicación web que tiene una lista de elementos de hoja de cálculo que deben llevarse a cabo para implementar. Entonces mi pregunta es ¿cómo puedo automatizar esto ? ¿Tiene que ser de toda la organización? Consejos / técnicas?
tools
builds
automation
billy.bob
fuente
fuente
Respuestas:
Make puede automatizar el proceso de construcción en un solo paso. Make puede hacer más o menos lo que quieras. No estoy seguro de por qué sapporo piensa que Make solo se aplica a C / C ++. Puede usar make para ejecutar cualquier tipo de comando. Ni siquiera está vinculado a la programación, aunque para eso se usa normalmente.
fuente
Dependiendo de su entorno, es posible que desee ver Make (C / C ++), Ant / Maven (Java), Gradle (Groovy), que es con lo que estoy familiarizado. Hay muchas posibilidades de que haya una solución popular para su entorno.
fuente
En el trabajo, utilizamos FinalBuilder , que facilita la configuración de un script para automatizar todo el proceso: verifique el código, compile todo, ejecute pruebas, cree un paquete de implementación, etc.
Es una muy buena herramienta, y recientemente ganó el Premio Dr. Dobbs Jolt por las herramientas de Gestión de Cambio y Configuración.
fuente
Claro que hay una manera de automatizar esto. Con herramientas como Chef , configurar un nuevo servidor recién instalado puede ser tan fácil como:
En mi caso, algunos pasos ejecutados por ese único comando son:
No estoy seguro de cómo se desempeñará Chef en su entorno, ya que el soporte de Windows aparece como "preliminar", pero para el sistema basado en UNIX son las rodillas de las abejas.
Puppet es un sistema similar que es un poco más antiguo que el chef y puede ofrecer una mejor compatibilidad con Windows.
fuente
Es sencillo con Maven en el mundo de Java
En nuestra configuración, esto hace todo el desarrollo necesario del archivo WAR (agregando las dependencias JAR según sea necesario), la implementación en el servidor web de desarrollo y la creación de datos de prueba enlatados en la base de datos de desarrollo. Una vez que está en su lugar, Maven maneja las pruebas funcionales integrales a través de SeleniumRC para verificar que la aplicación funcione.
Este comando único hace que la aplicación se implemente por completo en el clúster del servidor de desarrollo, por lo que está fácilmente disponible para que otros desarrolladores puedan trabajar de inmediato (suponiendo que haya pasado las pruebas). Es inusual que una implementación de desarrollo falle ya que los desarrolladores han verificado que funciona localmente
mvn clean install
.El artefacto de instantánea (WAR) se copia en el repositorio de Maven para compartirlo con otros desarrolladores (según el
deploy
comportamiento estándar de Maven ).De acuerdo, pero solo ha implementado una instantánea para el desarrollo, ¿qué pasa con las pruebas y la producción?
La distribución a los servidores de prueba y (más tarde) de producción se maneja a través del proceso de lanzamiento de Maven que nos gusta manejar manualmente para asegurar que alguien esté atento a cualquier salida sospechosa. Los probadores solo trabajan con artefactos lanzados, no con instantáneas.
Una vez que se lanza, se usa un script de compilación simple para SFTP el archivo WAR al clúster del servidor de prueba, nuevamente con alguien que observa el proceso para asegurarse de que nada salga mal.
Finalmente, después de que todos los probadores estén contentos, el archivo WAR sin cambios se aplica SFTP hasta el clúster del servidor de producción de conmutación por error, con alguien vigilando de cerca y una posición de reversión inmediata en caso de desastre.
fuente
Pensé que podría marcar esa en nuestra prueba de Joel, así que ...
Hice un servidor de compilación en Python que lo automatizó usando pychron .
El código se sincronizó con VSS desde la línea de comandos, compilando con borland make (la mayoría de los IDE crearán archivos make para usted, los llame así o no. Delphi solía bombear archivos make y llamarlos archivos .BPG, ahora ellos ' re archivos MSBuild XML y puede usar MSBuild) y los errores se colocaron en un archivo XML que seguí agregando.
Entonces ... Solo escribe un archivo por lotes y haz estas cosas.
fuente