Despliegue automático usando Ant o similar

Quiero resolver nuestro process de implementación y esperaba usar Ant o una herramienta de compilation similar para diseñar e implementar una implementación con un solo clic de una revisión SVN específica para múltiples serveres.

Usamos ColdFusion como nuestro server de aplicaciones, por lo que generalmente solo cargamos un set de files modificados en todos nuestros serveres. No hay un paso de compilation.

El process sería el siguiente:

  • Obtenga una revisión particular de SVN y expórtela a un directory de temperatura
  • Copie / FTP todos los files en el directory a un set de serveres web
  • Cambie el destino de implementación según sea necesario para testing / assembly / producción, etc.
  • En el futuro, nos gustaría agregar cambios de esquema de database a este process

¿Es posible hacer esto usando Ant o hay mejores herramientas de código abierto para el trabajo? Estoy interesado en la integración de SVN en particular.

Me encantaría escuchar cualquier experiencia en esta área. Gracias por adelantado.

Sí, hay numerosas fonts en este caso:

http://subversion.open.collab.net/articles/IntegratingSubversionIntoYourAntBuild.html

http://ant.apache.org/manual/Tasks/ftp.html o http://www.developer.com/java/print.php/998241

Además, no estoy seguro de cuál es el equivalente en el mundo de Cold Fusion, pero debes search en Unit Testing y una herramienta de pelusas. Una herramienta de pelusas puede verificar la syntax y las estructuras básicas no válidas. La parte de syntax no válida es la key … porque puede hacer que la tarea se detenga si hay un problema en lugar de implementar un código roto conocido.

Solo se trata de establecer los objectives individuales (tareas) y unirlos en el order correcto.

Si estás listo para aprender un poco, te sugiero que cambies a Maven y tus amigos. Maven básicamente hace que todo el set se desarrolle, pruebe, implemente y administre de manera muy simple y confiable.

Hay complementos que te ayudarán en todo el process. SVN está integrado con Maven, por lo que no tendrías problemas.

Aquí hay una list corta

  1. Use el plugin Maven SCM para pagar / exportar el código.
  2. Maven realizará una compilation específica para ti y empaquetará el código.
  3. Utilice el complemento Maven Cargo para cargar el artefacto empaquetado / Jar / War a su server. Usted puede reiniciar el server también.
  4. Tiene perfiles de compilation en Maven, puede definir comportamientos de compilation e implementación en function de la plataforma (Unix, Mac, Windows, …) y los entornos (desarrollo, testing, producción, etc.).
  5. En el lanzamiento, es posible que desee boost la versión del código a la próxima versión de SNAPSHOT. Esto también está automatizado en Maven.
  6. La integración de Maven con Liquibase es simplemente increíble. Hace que los cambios en su database se ejecuten de manera tan confiable que encontrará una diferencia. Gestionará los cambios de DB igual que su código de Java. En pequeñas piezas retráctiles de sets de cambio se obtiene mucha confianza mientras se trabaja en el entorno de producción.