9

Estoy buscando algunas recomendaciones para la construcción e implementación de proyectos automáticamente.¿Qué es un buen proceso de implementación y automatización de compilación para usar con asp.net?

Nuestra configuración de desarrollo actual utiliza ASP.NET, SVN, CCNET y un script MSBuild para la compilación del servidor de desarrollo. Estaba pensando en cambiarme a Cruise en lugar de CCNET, aunque no estoy seguro si eso me da algo adicional que no tengo.

Lo que me gustaría automatizar es el proceso desde que se realiza una compilación automática hasta la actualización del sitio en vivo con los nuevos cambios. Las actualizaciones del sitio pueden incluir actualizaciones del sitio base, así como actualizaciones del cliente, que pueden ser cambios de código o de base de datos, por lo que el proceso debe ser lo suficientemente flexible para que pueda manejar esos escenarios.

Una de mis fuentes de inspiración para esto vino del this video, así como las interminables horas que pasé haciendo actualizaciones cada mes.

+0

Solo una actualización después de 6 años; Las herramientas de [Automatización de publicación de aplicaciones] (https://en.wikipedia.org/wiki/Application_release_automation) están diseñadas específicamente para esto. BuildMaster es una de las herramientas y [este tutorial] (http://inedo.com/support/tutorials/building-and-deploying-a-net-web-application-using-buildmaster) describe el proceso mencionado. –

Respuesta

4

Para proyectos más pequeños o personales, yo recomendaría usar algo así como el gratis (y excelente) TeamCity de JetBrains. Automatización de pruebas unitarias, integración continua y reglas para lo que sucede después de una compilación (incluido moverlo a diferentes ubicaciones).

Para equipos más grandes, he encontrado un poco de automatización de compilación en la forma de tareas personalizadas de MSBuild y RoboCopy funciona mejor. Esta buena combinación entre la promoción manual de compilaciones entre entornos y el uso de MSBuild & RoboCopy para automatizar partes de este proceso crea espacios limpios entre los entornos (con muy pocos 'oops no quise decir que haya errores'). También nos permite tener versiones de revisión de control de calidad antes de promocionar.

Actualización 31/07/2014:

he utilizado custom TFS build templates con éxito. Son un poco complicados, pero puedes hacer algunas cosas geniales con ellos.

Para proyectos de código abierto (como las bibliotecas NuGet) alojados en GitHub, no creo que pueda vencer a AppVeyor. Tengo algunos proyectos como Mailchimp.NET que tienen compilación completa y automatización de implementación NuGet.

+1

Ahora me he actualizado, finalmente, de CruiseControl.NET a TeamCity y me encanta. Esto ha sido mucho más fácil de usar incluso con scripts personalizados de MSBuild. –

0

He usado Nant en el pasado con mucha suerte para tareas similares. Puede iniciarlo usando su compilación automatizada. (http://nant.sourceforge.net/)

Si quieres algo más amplio se puede extraer Wix (http://wix.sourceforge.net/)

Ahora son realmente seguro de que todo lo que una acumulación autmatic inicia desea actualizar el sitio en vivo? ¿O te refieres a que inicias una compilación, usando tu herramienta de cc, y luego genera una compilación para empezar a funcionar?

No me gustaría tener la actualización del sitio en vivo cuando alguien ingresó una nueva versión de un archivo.

Las actualizaciones de su base de datos serán probablemente el aspecto más desafiante. Sin embargo, siempre que lo que se registra para la actualización de databvase es un script de cambio, no está mal.

+0

Tenemos 2 tipos de compilación en este momento. Una es una versión de desarrollo y la otra una versión. Las compilaciones de Dev se ejecutan cada xx minutos después de un checkin de código y ejecutan las pruebas unitarias, etc. mientras que una versión es solo cuando la iniciamos y hace la mayor parte de lo que hace una compilación de desarrollo, pero en modo de lanzamiento y etiqueta como una versión en SVN. –

0

Parece que las dos funciones principales para implementar los cambios de código son: 1. Copiar archivos y 2. Ejecutar cambios en el script de DB. Si nos fijamos en usar MsBuild Community Tasks, hay muchas tareas de construcción útiles que pueden ayudarlo en el camino. SqlExecute y RoboCopy suenan como si fueran todo lo que necesitarías usar. Esto requeriría que modifiques tus archivos de proyecto para extender su comportamiento de compilación, pero una vez que lo hayas hecho, podrás "guiar" la parte manual de lo que se está haciendo.

Cuestiones relacionadas