¿Cómo travis-ci.org ¿se acumula el acelerador?


Mi empresa está utilizando travis-ci.org (la versión gratuita para software de código abierto) para construir automáticamente solicitudes de extracción a nuestro repositorio en github. Tenemos alrededor de 20 personas que envían Solicitudes de extracción al mismo repositorio a lo largo del día y cada uno de ellos se construye en una matriz que incluye dos Trabajos de Compilación por compilación. A menudo nos damos cuenta de que toma un número de minutos, y a veces horas, para que una compilación comience una vez que se ha enviado a travis. (Síntoma: la construcción aparece en travis pero el temporizador no se inicia y no hay salida de consola por un tiempo.)

Asumo que esto sucede porque el travis-ci.org está respaldado o se construye aceleradores. En primer lugar

  • ¿Travis acelera intencionalmente / construye límites de velocidad?

Si es así, ¿cómo se limitan las compilaciones?

  • Por login? (es decir, por usuario/organización de github, etc.)
  • Per repo?

Son compilaciones limitadas

  • Por "Build"?
  • Por "Build Job"?

Sabiendo esto nos permitirá optimizar nuestro tiempo de construcción hasta el final dentro de las limitaciones travis-ci.org ha establecido (que se espera que esté alineado con jugar bien como un usuario libre).

 28
Author: Hossein Narimani Rad, 2015-04-10

4 answers

Si revisa la página de estado de travis-ci ( http://www.traviscistatus.com / ) notará que las" Compilaciones Activas de Linux para proyectos de Código abierto " periódicamente llegan al máximo. Basándome en cómo funciona el sistema de compilación privado de travis (una sola cola para todos los "Trabajos de compilación" con no más de x ejecutándose a la vez), sospecho que tienen una sola cola para todos los trabajos de compilación de código abierto.

Puede dividir su compilación en varios trabajos, cada uno de los cuales terminaría más rápido. Cuando Travis está bajo el uso ligero se ejecutaría en paralelo y tu compilación regresaría antes, pero cuando Travis esté ejecutando muchas otras compilaciones, la tuya solo puede ejecutarse secuencialmente.

Mirando el .travis.yml en el repositorio que publicó, puede notar un buen aumento del rendimiento al agregar apt y pip caching (http://docs.travis-ci.com/user/caching / ). También debería considerar cambiar a la nueva infraestructura basada en contenedores de Travis ( http://docs.travis-ci.com/user/workers/container-based-infrastructure / ). Sin embargo, eso solo funcionará si puedes reemplazar los comandos sudo apt-get en tu compilación.

 19
Author: MattyB,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-20 15:46:48

Travis-CI actualmente proporciona cinco compilaciones simultáneaspara proyectos de código abierto, y esto se cuenta contra todos los repositorios por inicio de sesión u organización de GitHub, como descubrió la Apache Software Foundation. Travis cuenta cada "trabajo de compilación", en todos los proyectos y solicitudes de extracción, hacia este límite en compilaciones simultáneas.

 10
Author: shoyer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-15 10:52:55

En Travis CI, todas las compilaciones están en cola, independientemente de su inicio de sesión o repositorio.

También, si echa un vistazo al historial de estado de Travis CI (aquí http://www.traviscistatus.com/history ), verá que se dieron cuenta e investigaron el problema que describió el 7 y 8 de abril. También hicieron una actualización de su entorno de compilación el 9 de abril ( http://docs.travis-ci.com/user/build-environment-updates/2015-04-09 / ). Durante la actualización de la cola para procesar está creciendo y tiene que ser procesado más tarde. Esta combinación de cosas es probablemente el origen de los largos retrasos que experimentaste.

Espero que esto te ayude.

 3
Author: Guillaume Pascal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-20 10:07:18

Uso Travis para uso personal y tengo muy pocas versiones por día. A menudo he notado un retraso de unos minutos antes de que comience la construcción, por lo que probablemente sea normal. Después de un poco de investigación, no pude encontrar muy buenos números sobre los límites de Travis, pero definitivamente tienen algunos (fuente ). Este es un problema de GitHub preguntando si pueden limitar las compilaciones por proyecto para que no alcancen su límite de usuario/empresa tan rápidamente. Esto significa que hay algún límite impuesto. La versión gratuita se describe como "Uso justo" así que no estoy exactamente seguro de lo que eso significa. Si sus compilaciones se ejecutan lentamente, buscaría acelerar la compilación para que obtenga el máximo provecho de ellas antes de alcanzar su límite.

Lo siento, no puedo ofrecer los números reales, pero deberías hacer todo lo posible para optimizar las compilaciones tal como están. Supongo que pueden no tener ningún límite duro porque probablemente todavía están creciendo y cambiando lo que sus sistemas pueden manejar.

Algunos números que encontré:

Continuaré buscando los números límite y actualizaré mi respuesta si/cuando los multa.

 1
Author: Christian Juth,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-20 13:50:18