Jenkins vs Travis-CI. ¿Cuál usarías para un proyecto de código abierto? [cerrado]

270

Para mi proyecto, necesito elegir entre Jenkins y Travis-CI. He estado usando Jenkins durante años, pero también he leído buenas críticas sobre Travis-CI.

¿Cuál usarías para un proyecto de código abierto? ¿Cuáles son los principales beneficios o ventajas de ambos?

Juan luis
fuente

Respuestas:

293

Travis-ci y Jenkins, si bien ambas son herramientas para la integración continua, son muy diferentes.

Travis es un servicio alojado (gratuito para código abierto) mientras que tiene que alojar, instalar y configurar Jenkins.

Travis no tiene trabajo como en Jenkins. Los comandos para ejecutar para probar el código se toman de un archivo llamado .travis.ymlque se encuentra junto al código del proyecto. Esto facilita tener diferentes códigos de prueba por rama ya que cada rama puede tener su propia versión del archivo .travis.yml.

Puede tener una función similar con Jenkins si usa uno de los siguientes complementos:

  • Complemento Travis YML : advertencia: no parece ser popular, probablemente no esté completo en comparación con el Travis real.
  • Jervis : una modificación de Jenkins para que se lea crear trabajos desde un .jervis.ymlarchivo que se encuentra en la raíz del código del proyecto. Si .jervis.ymlno existe, recurrirá al uso del .travis.ymlarchivo.

Hay otros servicios alojados que también podría considerar para la integración continua (lista no exhaustiva):


Como escoger ?

Es posible que desee quedarse con Jenkins porque está familiarizado con él o no desea depender de terceros para su sistema de integración continua. De lo contrario, dejaría a Jenkins e iría con uno de los servicios gratuitos de CI alojados, ya que le ahorran muchos problemas (hospedar, instalar, configurar, preparar trabajos)

Dependiendo de dónde esté alojado su repositorio de código, tomaría las siguientes opciones:

  • en casa → Jenkins o gitlab-ci
  • Github.com → Travis-CI

Para configurar Travis-CI en un proyecto github, todo lo que tiene que hacer es:

  • agregue un archivo .travis.yml en la raíz de su proyecto
  • cree una cuenta en travis-ci.com y active su proyecto

Las características que obtienes son:

  • Travis ejecutará sus pruebas por cada impulso realizado en su repositorio
  • Travis ejecutará sus pruebas en cada solicitud de extracción que los contribuyentes harán
Thomasleveil
fuente
25
En mi experiencia, usar Jenkins sobre Travis también te ahorrará muchos problemas ( .travis.yml!) Tengo varios proyectos de github para los que estoy ejecutando mi propio Jenkins, y no me arrepiento de eso. Si tiene la capacidad de ejecutar su propio Jenkins, le recomiendo encarecidamente esa opción. Es bueno tener el 100% de control de su entorno CI.
Simon Forsberg
21
El complemento Jenkins Pipeline (que está destinado a reemplazar proyectos de estilo libre en la mayoría de las situaciones) permite que la secuencia de comandos groovy de la tubería se coloque en un archivo (generalmente denominado "Jenkinsfile") en su proyecto, lo que le permite las mismas características que se mencionan en Travis-CI anterior, con la ventaja adicional de contar con el apoyo del equipo de Jenkins.
KhainTCore
48

Trabajé tanto en Travis como en Jenkins: enumeraré algunas de las características de ambos:

Configurar CI para un proyecto

Travis viene en primer lugar. Es muy fácil de configurar. Tarda menos de un minuto en configurar con GitHub.

  1. Inicie sesión en GitHub
  2. Crear Web Hook para Travis ( editar:
  3. Regrese a Travis e inicie sesión con sus credenciales de GitHub
  4. Sincronice su repositorio de GitHub y habilite las solicitudes Push y Pull.

Jenkins

  1. Crear un entorno (maestro Jenkins)
  2. Crear ganchos web
  3. Configure cada trabajo (lleva tiempo compararlo con Travis)

Volver a ejecutar compilaciones

Travis: cualquier persona con acceso de escritura en GitHub puede volver a ejecutar la compilación haciendo clic en `reiniciar compilación

Jenkins: vuelva a ejecutar compilaciones basadas en una frase. Proporciona texto de frase en la descripción de PR / commit, como reverify jenkins.

Ambiente de control

Travis: Travis proporciona un entorno alojado. Instala el software requerido para cada compilación. Es un proceso lento.

Jenkins: configuración única. Instala todo el software requerido en un nodo / máquina esclava, y luego construye / prueba en un entorno preinstalado.

Crear registros:

Travis: admite registros de compilación para colocar en Amazon S3.

Jenkins: fácil de configurar con el complemento de artefactos de construcción.

rameshthoomu
fuente
¿Podría decir, por favor, qué es S3?
Pooja
@Pooja Amazon S3
adrianN
30

Sugeriría Travis para el proyecto de código abierto. Es simple de configurar y usar.

Pasos sencillos para configurar:

  1. Debe tener una cuenta GITHUB y registrarse en el sitio web de Travis CI utilizando su cuenta GITHUB.
  2. Agregue el .travis.ymlarchivo en la raíz de su proyecto. Agregue Travis como servicio en su página de configuración del repositorio.

Ahora, cada vez que se comprometa en su repositorio, Travis construirá su proyecto. Puede seguir pasos simples para comenzar con Travis CI.

Appsntech
fuente
77
Una advertencia para usar Travis CI para código abierto: ejecuta sus compilaciones y pruebas en Linux u OSX, no en Windows. Entonces, si su proyecto es, por ejemplo, .NET o PowerShell, deberá escribirse en una versión multiplataforma de .NET (Mono o .NET Core) o PowerShell (PowerShell Core) para que pueda usar Travis CI . Una herramienta de CI alojada más amigable con Windows es Appveyor ..
Simon Tewsi