Cómo ejecutar Travis-ci localmente

Me acabo de unir a un proyecto, y soy nuevo en travis-ci. Prefiero no tener que presionar cada pequeño cambio en .travis.yml y cada pequeño cambio que haga en la fuente para ejecutar la comstackción. Con jenkins puedes descargar jenkins y ejecutar localmente. ¿Travis ofrece algo como esto?

Nota: He visto el travis-ci cli y lo descargué, pero todo lo que parece hacer es llamar a su API, que luego se conecta con mi repo de github, así que si no lo hago, no importará que reinicie la última construcción

    Este proceso le permite reproducir completamente cualquier trabajo de construcción de Travis en su computadora. Además, puede interrumpir el proceso en cualquier momento y depurar. A continuación se muestra un ejemplo donde reproduzco perfectamente los resultados del trabajo n. ° 191.1 en php-school / cli-menu .

    Requisitos previos

    • Tienes un fondo de inversión público en GitHub
    • Ejecutaste al menos una comstackción en Travis
    • Tienes Docker configurado en tu computadora

    Configurar el entorno de construcción

    Referencia: https://docs.travis-ci.com/user/common-build-problems/

    1. Crea tu propia ID de comstackción temporal

       BUILDID="build-$RANDOM" 
    2. Vea el registro de comstackción , abra el botón Mostrar más para INFORMACIÓN DEL TRABAJADOR y encuentre la línea INSTANCIA, péguelo aquí y ejecute:

       INSTANCE="travisci/ci-garnet:packer-1512502276-986baf0" 
    3. Ejecute el servidor sin cabeza

       docker run --name $BUILDID -dit $INSTANCE /sbin/init 
    4. Ejecute el cliente adjunto

       docker exec -it $BUILDID bash -l 

    Ejecuta el trabajo

    Ahora estás dentro de tu entorno Travis. Ejecute su - travis para comenzar.

    Este paso está bien definido, pero es más tedioso y manual. Encontrará cada comando que Travis ejecuta en el entorno. Para hacer esto, busque todo en la columna de la derecha que tenga una etiqueta como 0.03s .

    enter image description here

    En el lado izquierdo verás los comandos reales. Ejecuta esos comandos, en orden.

    Resultado

    Ahora es un buen momento para ejecutar el comando de history . Puede reiniciar el proceso y reproducir esos comandos para ejecutar la misma prueba en una base de código actualizada.

    • Si su repository es privado: ssh-keygen -t rsa -b 4096 -C “YOUR EMAIL REGISTERED IN GITHUB” luego cat ~/.ssh/id_rsa.pub y haga clic aquí para agregar una clave
    • FYI: puedes git pull desde la ventana acoplable para cargar confirmaciones desde tu cuadro dev antes de pasarlas a GitHub.
    • Si desea cambiar los comandos que Travis ejecuta, es SU responsabilidad averiguar cómo se traduce de nuevo en .travis.yml trabajo.
    • No sé cómo limpiar el entorno de Docker, parece complicado, tal vez esta memoria se escape

    Travis-ci ofrece una nueva infraestructura basada en contenedores que usa Docker. Esto puede ser muy útil si está tratando de resolver problemas de una comstackción travis-ci reproduciéndola localmente. Esto está tomado de la documentación de Travis CI.

    Solución de problemas localmente en una imagen Docker

    Si tiene problemas para rastrear el problema exacto en una comstackción, a menudo ayuda a ejecutar la comstackción localmente. Para hacerlo, debe utilizar nuestra infraestructura basada en contenedores (es decir, tener sudo: false en su .travis.yml ) y saber qué imagen de Docker está utilizando en Travis CI.

    Ejecutar localmente una imagen de acoplador basada en contenedor

    1. Descargue e instale el Docker Engine.
    2. Selecciona una imagen de Docker Hub . Si no está usando una imagen específica del idioma, seleccione ci-ruby . Abra una terminal e inicie una sesión Docker interactiva usando la URL de la imagen:

       docker run -it travisci/ci-ruby /bin/bash 
    3. Cambiar al usuario de travis :

       su - travis 
    4. Clona tu repository git en la carpeta / de la imagen.
    5. Instale manualmente cualquier dependencia.
    6. Ejecute manualmente su comando de comstackción Travis CI.

    ACTUALIZACIÓN: ahora tengo una respuesta llave en mano completa, todo en uno, consulte https://stackoverflow.com/a/49019950/300224 . ¡Solo tardó 3 años en descubrirlo!

    De acuerdo con la documentación de Travis: https://github.com/travis-ci/travis-ci existe una mezcla de proyectos que se alían para ofrecer el servicio web de Travis CI que conocemos y amamos. El siguiente subconjunto de proyectos parece permitir la funcionalidad de make test local utilizando .travis.yml en su proyecto:

    travis-build

    travis-build crea el script de construcción para cada trabajo. Toma la configuración del archivo .travis.yml y crea un script bash que travis-worker ejecuta en el entorno de comstackción.

    libros de cocina travis

    travis-cookbooks contiene los libros de cocina Chef que se utilizan para aprovisionar los entornos de construcción.

    travis-trabajador

    travis-worker es responsable de ejecutar los scripts de comstackción en un entorno limpio. Transmite la salida de registro a travis-logs y empuja las actualizaciones de estado (inicio / finalización de comstackción) a travis-hub.

    (Los otros subproyectos son responsables de comunicarse con GitHub, su interfaz web, correo electrónico y su API).

    puedes probar https://github.com/jolicode/JoliCi

    usa docker para tratar de ser un reemplazo local para travis-ci. debería soportar php, nodejs y ruby. si falta algo, puede presentar un error en la página del proyecto

    Similar a Scott McLeod, pero esto también genera un script bash para ejecutar los pasos del .travis.yml.

    Solución de problemas localmente en Docker con un script Bash generado

     # choose the image according to the language chosen in .travis.yml $ docker run -it -u travis quay.io/travisci/travis-jvm /bin/bash # now that you are in the docker image, switch to the travis user sudo - travis # Install a recent ruby (default is 1.9.3) rvm install 2.3.0 rvm use 2.3.0 # Install travis-build to generate a .sh out of .travis.yml cd builds git clone https://github.com/travis-ci/travis-build.git cd travis-build gem install travis # to create ~/.travis travis version ln -s `pwd` ~/.travis/travis-build bundle install # Create project dir, assuming your project is `AUTHOR/PROJECT` on GitHub cd ~/builds mkdir AUTHOR cd AUTHOR git clone https://github.com/AUTHOR/PROJECT.git cd PROJECT # change to the branch or commit you want to investigate travis compile > ci.sh # You most likely will need to edit ci.sh as it ignores matrix and env bash ci.sh 

    Use wwtd (lo que harían travis) ruby gem para ejecutar pruebas en su máquina local más o menos como se ejecutarían en travis.

    Recreará la matriz de comstackción y ejecutará cada configuración, excelente para la configuración de comprobación de cordura antes de pulsar.

     gem i wwtd wwtd 

    No estoy seguro de cuál fue tu razón original para ejecutar Travis localmente, si solo querías jugar con él, entonces deja de leer aquí ya que es irrelevante para ti.

    Si ya tiene experiencia con Travis alojado y desea obtener la misma experiencia en su propio centro de datos, siga leyendo.

    Desde diciembre de 2014, Travis CI ofrece una versión Enterprise local.

    http://blog.travis-ci.com/2014-12-19-introducing-travis-ci-enterprise/

    El precio es parte del artículo también:

    La licencia se realiza por asientos, donde cada licencia incluye 20 usuarios. El precio comienza en $ 6,000 por licencia, que incluye 20 usuarios y 5 comstackciones concurrentes. Hay una opción premium con comstackciones ilimitadas por $ 8,500.

    Podrías probar con Trevor , que usa Docker para ejecutar tu comstackción de Travis.

    De su descripción:

    A menudo necesito ejecutar pruebas para múltiples versiones de Node.js. Pero no quiero cambiar las versiones manualmente usando n / nvm o presionar el código a Travis CI solo para ejecutar las pruebas.

    Es por eso que creé Trevor. Lee .travis.yml y ejecuta pruebas en todas las versiones que solicitó, al igual que Travis CI. Ahora puedes probar antes de pulsar y mantener limpio tu historial de git.