Aplicación ASP.NET – Extraer, probar, comstackr e implementar

Asunción: soy muy nuevo en el espacio de continuous integration.

¿Cuál es el método que debería usar para Extraer, Probar, Comstackr, Implementar una aplicación ASP.NET (.NET 3.5).

Paso 1) A veces me gustaría get la última fuente de TFS, y algunas veces Subversion.

Paso 2) Ejecuta todas las testings. (Actualmente estoy usando MbUnit)

Paso 3) Si todas las testings pasan, cree una versión de lanzamiento.

Paso 4) Despliegue el código a través de FTP, reemplazando la aplicación actual en una URL específica

Estoy buscando soluciones que sean fáciles de aprender y configurar, y de bajo costo o de código libre / abierto.

¿Sería MSBuild la forma más fácil de hacer para el paso 3? Como realmente no quiero hacer nada especial … simplemente proporcione un nombre de solución y compílelo. Mi principal preocupación es encontrar algo que abstraiga los principales problemas causados ​​por el requisito / paso # 1.

Usamos CruiseControl.net, sin embargo, su primer requisito podría ser un problema. ¿Podría explicar cómo hace la elección de qué depósito extraer la fuente? CC.NET puede funcionar con cualquiera de los dos, o podría funcionar con ambos al mismo time si tiene un poco de inteligencia con la configuration de ccnet.config, pero depende más de cómo sepa de cuál extraer.

El rest es fácil, uso NAnt para hacer el trabajo real y es muy fácil hacerlo.

editar:

NAnt no se ha actualizado durante un time, el desarrollo se detuvo cuando se lanzó MSBuild. Si realiza una búsqueda en stackoverflow encontrará bastantes preguntas tipo "should swap to MSBuild", personalmente tenemos una cantidad razonable de conocimiento en NAnt, hace lo que queremos, y hay algunas cosas que hacemos que aparecen muy difícil en MSBuild, así que esperaremos un poco más.

CruiseControl.NET tiene tareas que pueden llamar a MSBuild directamente, todavía llamamos a DevEnv directamente mientras construimos muchos proyectos de implementación, algo que MSBuild tiene problemas para hacer.

Nuestro script NAnt nos lleva desde la fuente correcta de ClearCase hasta el producto empaquetado, listo para enviar.

Sin embargo, NAnt es solo una opción, si está contento con otro lenguaje de scripting como PowerShell, entonces no hay ninguna razón por la cual no se deba usar. CruiseControl.NET puede llamar a cualquier ejecutable como una tarea usando las tags y pasa mucha información a través del uso de variables de entorno. Esta página: http://confluence.public.thoughtworks.org/display/CCNET/Executable+Task detalla qué se pasa.

En términos de usar los mismos pasos, la única diferencia entre las dos configuraciones sería el bloque de control de origen en el file ccnet.config, nuestro script NAnt no cambia en absoluto cuando cambiamos la vista que se está utilizando, ya que todo es relativo y debemos tener un layout estándar para nuestras vistas, lo que significa que sabemos dónde está todo todo el time.

Espero que ayude un poco más.

Alan.