¿Qué CI podrían construir bibliotecas escritas en proyectos C ++ / VBA y .NET (C #)?

9

Trabajo en el departamento de TI de la empresa de automatización / desarrollo y estamos a punto de implementar / agregar CI en nuestro conjunto de herramientas. Y estamos teniendo dificultades para elegir el.

En este momento hemos estado pensando en estos sistemas:

  • Jenkins
  • CircleCI
  • TravisCI

Pregunta: ¿Cuáles son los atributos clave del software de CI que deberían tener los sistemas y en función de los cuales deberíamos compararlos?


EDITAR: esperamos de CI las cosas estándar: desde la creación de aplicaciones, ejecución de pruebas (Unidad / Integración / Rendimiento / ...), guardar estadísticas y proporcionar información por correo electrónico / en la página (informes).

El problema es que no sabemos qué si hay más funcionalidad y si, ¿qué es? Esto es lo que estaría buscando bajo las palabras "atributos clave" . Los nombres anteriores son solo para referencia, estoy buscando la respuesta "por qué usar esto o aquello" simplificado "usar esto o aquello" .

Estamos desarrollando en un entorno .NET (C #) con algunas bibliotecas escritas en C ++ / VBA.

Tatranskymedved
fuente
3
Sería útil si puede elaborar lo que está buscando en su herramienta de CI. ¿Cuáles son sus requisitos, cuáles son sus necesidades? Por ejemplo: ¿desde qué idiomas construirás artefactos? ¿Está interesado en un modelo SaaS o prefiere alojar su propio CI? Hay otras herramientas de CI por ahí, ¿por qué lo achacaste a estas tres? Brindarnos más información permitirá respuestas más adaptadas a sus necesidades, de lo contrario, obtendrá respuestas genéricas que ya puede buscar en
Alexandre
1
Mira, tu pregunta es muy amplia porque no has probado estas herramientas. Puede instalarlos fácilmente en un contenedor con pocos comandos y probarlos. Si casi no tiene experiencia, puede elegir al azar, obtener experiencia con una herramienta y luego, si deja de funcionar para usted, puede venir y hacer preguntas más específicas sobre qué características necesita y qué herramientas podrían tenerlas o cuáles. Plugin que necesita para que su herramienta actual obtenga esa característica.
Jiri Klouda
2
Con la edición, voy a cerrar esto por ahora como duplicado de esta pregunta: stackoverflow.com/questions/1438390/comparison-of-ci-servers
Jiri Klouda
1
El problema con la pregunta que solicita atributos clave en el software de integración continua es que obtendrá la misma respuesta que al seleccionar casi cualquier otra herramienta. Por ejemplo, la respuesta de avi podría aplicarse igualmente a la herramienta de revisión de código o al sistema de control de versiones o wiki o casi cualquier cosa.
Jiri Klouda
1
buen enlace para jenkins Vs teamcity esto ayudará a determinar qué herramienta de CI utilizar para linkedin.com/pulse/jenkins-vs-teamcity-amir-najjar
Ashish Karpe

Respuestas:

12

En general, existen cinco diferencias principales entre las diferentes soluciones de software de CI.

  1. Costo : ¿El software es de código abierto y gratuito o propietario? ¿Su equipo de DevOps ya tiene un presupuesto para software o se espera que compare opciones gratuitas?

  2. Mantenimiento : ¿Es el software algo que necesita alojar por su cuenta y mantener, o se ofrece como un servicio? Si necesita alojarlo por su cuenta, ¿tiene los miembros del equipo disponibles que puedan ejecutar el mantenimiento? Si se proporciona como un servicio, ¿dónde reside su código?

  3. Seguridad : ¿Hay alguna preocupación de seguridad o cumplimiento sobre dónde están alojadas las máquinas de compilación? ¿Se comprenden bien los permisos requeridos por el software de CI en su SCM?

  4. Comunidad : ¿El software de CI tiene una buena comunidad a su alrededor con los complementos y el soporte para las tecnologías que utiliza? ¿Es fácil obtener soporte o solucionar problemas cuando las cosas salen mal?

  5. UX : ¿Qué tan fácil es usar el software? ¿El software CI admite scripts almacenados dentro de su SCM para las tareas que necesita hacer? ¿El informe es fácil de entender o requerirá algo de capacitación?

avi
fuente
Su lista pierde el punto de que los servicios administrados pueden tener limitaciones arbitrarias indocumentadas o errores que pueden ser difíciles o imposibles de eludir. En mi experiencia, Circle CI y Jenkins tienen este tipo de limitaciones que pueden negar por completo los beneficios de un servicio administrado.
Michael Le Barbier Grünewald
Muy buena lista. También agregaría Extensibilidad / Complementos. Aunque lo mencione implícitamente en la comunidad, diría que pueden ser exclusivos porque algunas herramientas proporcionan sus propios complementos mientras que pueden tener una comunidad de apoyo sólida.
gumol
6

El sistema SCM que utiliza puede ser esencial para hacer su elección de CI.

El uso de una solución privada / intranet, por ejemplo, prácticamente excluye CircleCIy TravisCIcomo estos solo son compatibles con la nube GitHuby / o Bitbucket.

Jenkinstiene complementos compatibles con muchos sistemas SCM, consulte ¿Qué herramientas SCM admite Jenkins? . Pero el uso de un sistema SCM menos popular o envuelto / personalizado puede requerir el desarrollo de un nuevo complemento.

También pueden ser importantes las particularidades de su infraestructura / marco de prueba / construcción , por razones similares (configuración, ubicación / método de acceso y compatibilidad / soporte).

Dan Cornilescu
fuente