Pregunta

Nota: soy nuevo en la integración continua

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

  1. Build (ensamblados y aplicación web)
  2. Pruebas (MbUnit o NUnit)
  3. y si pasa las pruebas de despliegue 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).

¿Fue útil?

Solución

He escrito una publicación de blog bastante detallada usando TeamCity y proyectos de implementación web para automatizar la compilación y la implementación (local) aquí:

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

Luego agregué esto para mostrar la adición de 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 de compilación teamcity que descargo de mi repositorio SVN
  • Construyo e implemento el sitio en una carpeta local en el servidor de compilación
  • Disparo un cliente FTP de línea de comandos que admite secuencias de comandos llamadas WinSCP utilizando la tarea EXEC MSBUILD ( http://winscp.net/ )
  • Cargar todo el contenido de mis sitios
  • Haga que inserte la bebida de su elección

Luego me aseguro de que solo implemente el Trunk de mi repositorio SVN, y desarrolle y pruebe todo en una rama antes de fusionar, de esta manera solo se implementan las cosas probadas. Agregue pruebas automatizadas a su ciclo de construcción y obtendrá una combinación perfecta en el cielo.

Otros consejos

Iría con msbuild y mbunit para las pruebas unitarias. Para la parte de FTP, google for msbuild realiza tareas personalizadas con FTP y debería estar cocinando a gas.

Históricamente he usado CruiseControl , que funcionó bien, pero también escuché cosas buenas sobre TeamCity . En cuanto a las tareas FTP para MSBuild (que definitivamente es la forma en que desea ir), hay algunas para encontrar en la red. Cuando verifiqué la última vez (que no era bastante reciente) todo lo que encontré tenía uno u otro inconveniente, así que terminé escribiendo uno yo mismo (envolviendo la FtpWebRequest en .NET). Si bien esa podría no ser la mejor implementación de FTP, la tarea proporcionó la funcionalidad que necesitaba (carga de estructuras de directorio, eliminación remota). Supongo que podría haber tareas disponibles hoy que brinden esa funcionalidad (de lo contrario, tal vez debería publicar la mía ...)

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

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

Después de que todo se ha unido, lo bueno del servidor Zed es que se convierte en nuestro sistema donde todos saben de dónde obtener sus artefactos. Maneja la promoción de Dev a QA a Production, y rastrea las compilaciones a través de este ciclo de vida.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top