2009-05-03 22 views
6

Nota: No soy Novato de integración continuaC#/NET - integración continua y FTP despliegue

¿Cuál es el enfoque de "mejor" para conseguir estas funciones:

  1. construcción (asambleas y Web aplicación)
  2. Prueba (MbUnit o NUnit)
  3. y si pasa las pruebas se implementan a través de FTP en el servidor principal (internet).

Y lo que quiero decir con "mejor" es la opción más barata, y fácil de aprender (poco dolor de cabeza).

Respuesta

5

he escrito un post bastante detallada blog a través de TeamCity, y los proyectos de implementación Web para automatizar la acumulación y despliegue (local) aquí:

http://www.diaryofaninja.com/blog/2010/05/09/automated-site-deployments-with-teamcity-deployment-projects-amp-svn

entonces he añadido a esto para mostrar además FTP

http://www.diaryofaninja.com/blog/2010/09/21/continuous-integration-tip-1-ndash-ftp-deployment

Básicamente el proceso es así:

  • uso de un servidor TeamCity acumulación i descargo de mi repositorio SVN
  • que construir e implementar el sitio a una carpeta local en el servidor de compilación
  • yo fuego un cliente FTP de línea de comandos que soporta programación llamado WinSCP utilizando el MSBUILD de tareas EXEC (http://winscp.net/)
  • Subir todos mis sitios de contenido
  • haga que bebidas inserción de elección

entonces me aseguro que yo sólo desplegar el tronco de mi repositorio SVN, y desarrollar y probar todo en una rama antes de la fusión - de esta manera solo se implementan las cosas probadas. Agregue pruebas automatizadas a su ciclo de construcción y obtendrá una coincidencia en el cielo.

+1

Ya sabes, este es el enfoque que he estado tomando con varios clientes a gran escala por un tiempo y me ha servido bien. Team Foundation Server es excelente si está en un entorno de MS, pero si trabaja con una compañía "mixta" donde SCM ya existe (SVN en mi caso), esto parece funcionar muy bien. La única sensación extraña que tengo es, ¿parece que MS tendría una instalación que haría todo esto? –

+0

Puede usar MSDEPLOY; sin embargo, creo que no le proporciona el nivel de control que le da el enfoque anterior con la posibilidad de escribir cosas en su compilación (copiar app_offline.htm personalizado, etc.) – Doug

+0

Olvidó poner corchetes angulares alrededor inserte la bebida de su elección: debe ser : D En serio ... ¡respuesta increíble! – longda

2

Iría con msbuild y mbunit para las pruebas unitarias. Para la parte de FTP google para msbuild tareas personalizadas con FTP y debe cocinar en gas.

+0

Entonces, ¿solo usa msbuild por sí mismo? No es necesario para el servidor de CI? – BuddyJoe

+0

Es mejor que aprenda msbuild, los scripts de compilación están basados ​​en XML, por lo que debe estar familiarizado con ellos. Una vez que tenga un script de compilación, puede conectar el control de crucero. Esa es la forma en que volaría. – Burt

1

He usado históricamente CruiseControl, que funcionó bien, pero también escuché cosas buenas sobre TeamCity. En cuanto a las tareas de FTP para MSBuild (que definitivamente es la forma en que desea ir), hay algunas para encontrar en la red. Cuando revisé la última vez (que no fue muy reciente), todo lo que encontré tenía una u otra deficiencia, así que terminé escribiendo uno yo mismo (envolviendo el FtpWebRequest en .NET). Si bien esa podría no ser la mejor implementación de FTP, la tarea proporcionaba la funcionalidad que necesitaba (carga de estructuras de directorios, eliminación remota). Supongo que puede haber tareas disponibles en la actualidad que proporcionan esa funcionalidad (de lo contrario, tal vez debería publicar el mío ...)

0

Hacemos lo mismo con Zed Builds and Bugs Manager de Hericus Software.

Tenemos que combinar los ensamblados .Net con los dll de C++ y empacar todo en una instalación Java (imagine esa confusión :-)). También usamos FTP para subir algunos componentes de la construcción (no todo) a otros sistemas que necesitan piezas de lo que produce la construcción.

Después de que todo se ha rodado, lo bueno del servidor Zed es que se convierte en nuestro sistema donde todo el mundo sabe dónde obtener sus artefactos. Se encarga de la promoción de Dev a QA para Producción, y realiza un seguimiento de las compilaciones a lo largo de este ciclo de vida.

Cuestiones relacionadas