tools tool deployment build-automation

deployment - tool - ¿Qué herramientas usa para compilaciones automatizadas/implementaciones automatizadas? ¿Por qué?



build tool (20)

Curiosamente, acabo de pasar dos semanas revisando (leer la implementación desde cero) nuestro proceso de construcción nocturno. Muy divertido (no, realmente). Jugué con la idea de instalar Team Foundation Server, pero usamos Perforce para el control de fuente y no pensé que valiera la pena.

Nuestro proceso ahora es un conjunto de scripts de Powershell que se ejecutan en un servidor de compilación / prueba dedicado que hace lo siguiente en una tarea programada:

Elimine todo el árbol fuente (¡compruebe que no haya tenido nada desprotegido primero!)

Bajar todo el árbol fuente de Perforce (desde la última construcción etiquetada)

Genera un informe de cambio (al sincronizar con HEAD y ver lo que viene abajo)

Crea la aplicación

Indexe los archivos PDB a las fuentes de Perforce

Almacene los binarios y símbolos en un servidor de símbolos dedicado

Ejecute los proyectos de prueba

Construye el instalador

Etiqueta

Enviar correos electrónicos al grupo con informes de estado sobre todo lo anterior

Funciona bien.

¿Qué herramientas usa para compilaciones automatizadas / implementaciones automatizadas? ¿Por qué?

¿Qué herramientas recomiendas?


En el trabajo usamos good ol '' Ant para construir nuestros servlets de Java.


Las Autotools de GNU definitivamente. El autoconf y el automake son estándares de facto para los sistemas Unix.


NAnt para compilaciones (pero MSBuild, Rake, casi todo estaría bien) y CruiseControl.NET para implementaciones. Actualmente estoy trabajando con el nuevo crucero de los estudios ThoughtWorks, ya que ofrece una mejor manera de organizar las distintas tuberías y nos permite implementar cualquier versión que desee en un entorno objetivo.


Para compilaciones automatizadas, creo que la mejor herramienta en este momento es Team City de JetBrain. La versión gratuita tiene todas las características que necesitará para la mayoría de los equipos de 5-10 personas. La configuración es fácil, configurar nuevos proyectos es sencillo (relativamente) y, lo más importante, confiable.

Para migraciones automáticas, nada supera a PowerShell.


Solíamos usar Visual Build del software Kinook, pero recientemente con nuestra nueva aplicación cambiamos a MSBuild ya que tenía una mejor integración con TFS y la capacidad de crear tareas personalizadas.


Usamos TeamCity , de JetBrains. También hacen Resharper e IntelliJ.

Lo usamos para construir nuestras aplicaciones .Net, y ha sido bastante fácil de configurar, conectar a TFS y ejecutar herramientas adicionales desde. Está muy pulido, y en realidad me recuerda un poco a este sitio. Lo encontré mucho mejor que CruiseControl, y para nuestro tamaño de equipo es gratis. Si necesita muchas construcciones diferentes, más compilaciones por usuario, etc., cuesta un poco (pero aún bastante razonable).


CruiseControl para construcciones automatizadas. Funciona genial.


Hudson para compilaciones automatizadas. Lo elegí porque era el más fácil de instalar y demo. Un sistema que es demasiado complejo y no tiene una apariencia resbaladiza no impresionará a la administración lo suficiente como para tenerlos a bordo para compilaciones automáticas. Especialmente en un proyecto que tiene mucha inercia.


Automated Build Studio .

En lugar de dejarle hablar con scripts o archivos xml, viene con operaciones de macro gráficas predefinidas que le permiten crear tareas fácilmente.



make y bash en Linux

make y cmd en windows


He tenido éxito usando buildbot , desencadenado por una secuencia de comandos post-commit en un repositorio de subversión. Esto se ha utilizado tanto para construcciones automáticas como para pruebas automatizadas.


ANT para compilación e implementación / instalaciones.

Es un gran instalador multiplataforma.


Usamos Hericus Zed Builds And Bugs Management para nuestras compilaciones automáticas.

Tenemos 4 ramas de código, cada una con java, c ++, C #, compilaciones multiplataforma e instaladores para 5 sistemas operativos.


Haz las construcciones. Paquetes de Debian para implementaciones (ya que nuestros servidores de producción lo ejecutan).


Para nuestro material compilable de Windows, utilizamos FinalBuilder .


UppercuT usa NAnt para construir y es el Framework de construcción terriblemente fácil de usar.

¡Las compilaciones automatizadas son tan sencillas como (1) nombre de la solución, (2) ruta de control de origen, (3) nombre de la empresa para la mayoría de los proyectos!

http://code.google.com/p/uppercut/

Algunas buenas explicaciones aquí: UppercuT

Más información

UppercuT es una compilación automatizada convencional, lo que significa que configura un archivo de configuración y luego obtiene un montón de características de forma gratuita. Podría decirse que la característica más poderosa es la capacidad de especificar configuraciones de entorno en UN lugar y hacer que se apliquen en todas partes, incluida la documentación cuando crea la fuente.

Documentación disponible: https://github.com/chucknorris/uppercut/wiki

Caracteristicas :

  • Configuración simple
  • Actualizaciones simples
  • Puntos de extensión personalizados (pre, post y replace) para cada paso del proceso de compilación http://uppercut.pbworks.com/CustomizeUsingExtensionPoints
  • Tiene documentación para integración con Team City, CruiseControl.NET y Jenkins (anteriormente Hudson) https://github.com/chucknorris/uppercut/tree/master/docs
  • Funciona en Linux con Mono
  • Versiones DLL basadas en el número de compilación y las revisiones de control de origen (SVN, TFS, Git, HG)
  • Actividades de compilación: F5 o Ctrl + Shift + B
  • Denominación fuerte hecha tan fácil como verdadera / falsa
  • Prueba y análisis de código
    • Pruebas
      • NUnit
      • MbUnit v2
      • Gallio
      • xUnit
    • NCover
    • NDepender
    • Nitriq
    • Mono Migration Analyzer
  • Ofuscación
  • ILMerge
  • Creación de plantillas y creación de entornos (ConfigBuilder, DocBuilder, SQLBuilder, DeploymentBuilder) https://github.com/chucknorris/uppercut/blob/master/docs/ConfigBuilder.doc?raw=true
  • Empaquetar salida para prepararse para la implementación
  • Descomprime la salida

TeamCity ejecuta scripts NAnt para construcción / empaquetado y PowerShell para implementación.

Descubrí que el uso de NAnt, impulsado por TeamCity, en lugar de los corredores nativos de TeamCity nos permite tener un proceso de compilación mucho más rico (por ejemplo, minimizador de css, etc.). También significa que el proceso completo de compilación / paquete se puede ejecutar en cualquier PC de desarrollo en lugar de solo los servidores de TeamCity, lo que facilita mucho la personalización y la depuración de problemas en el proceso de compilación.