travis ci - deploy - Cómo ejecutar travis-ci localmente
travis git (8)
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 realizar una depuración. A continuación se muestra un ejemplo donde reproduzco perfectamente los resultados del trabajo # 191.1 en php-school / cli-menu .
Prerrequisitos
- Tienes repositorio público en GitHub
- Has ejecutado al menos una compilació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/
Crea tu propia ID de compilación temporal
BUILDID="build-$RANDOM"
Vea el registro de compilación , abra el botón Mostrar más para obtener INFORMACIÓN DEL TRABAJADOR y encuentre la línea INSTANCE, péguela aquí y ejecute (reemplace la etiqueta después de los dos puntos con la más nueva disponible) :
INSTANCE="travisci/ci-garnet:packer-1512502276-986baf0"
Ejecutar el servidor sin cabeza
docker run --name $BUILDID -dit $INSTANCE /sbin/init
Ejecutar el cliente adjunto
docker exec -it $BUILDID bash -l
Ejecutar el trabajo
Ahora estás dentro de tu entorno de Travis. Ejecute su - travis
para comenzar.
Este paso está bien definido pero es más tedioso y manual. Encontrarás todos los comandos que Travis ejecuta en el entorno. Para hacer esto, busque todo en la columna de la derecha que tenga una etiqueta como 0.03s .
En el lado izquierdo verá los comandos reales. Ejecute esos comandos, en orden.
Resultado
Ahora es un buen momento para ejecutar el comando de history
. Puede reiniciar el proceso y volver a ejecutar esos comandos para ejecutar la misma prueba en una base de código actualizada.
- Si su repositorio es privado:
ssh-keygen -t rsa -b 4096 -C “YOUR EMAIL REGISTERED IN GITHUB”
entoncescat ~/.ssh/id_rsa.pub
ycat ~/.ssh/id_rsa.pub
clic aquí para agregar una clave - FYI: puede hacer que
git pull
desde el interior de la ventana acoplable para cargar confirmaciones desde su caja de desarrollo antes de empujarlos a GitHub - Si desea cambiar los comandos que ejecuta Travis, es SU responsabilidad averiguar cómo se traduce de nuevo en un
.travis.yml
en funcionamiento. - No sé cómo limpiar el entorno Docker, parece complicado, tal vez esto pierda memoria
Me acabo de unir a un proyecto, y soy nuevo en travis-ci. Prefiero no tener que empujar cada pequeño cambio a .travis.yml y cada pequeño cambio que realice en la fuente para ejecutar la compilación. Con jenkins puedes descargar jenkins y correr 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 a mi repositorio github, así que si no pulso, no importará que reinicie La última construcción.
No estoy seguro de cuál fue su motivo original para ejecutar Travis localmente, si solo quería jugar con él, entonces deje de leer aquí ya que es irrelevante para usted.
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 construcciones simultáneas. Hay una opción premium con compilaciones ilimitadas por $ 8,500.
Puedes probar Trevor , que usa Docker para ejecutar tu compilación de Travis.
De su descripción:
A menudo necesito ejecutar pruebas para varias versiones de Node.js. Pero no quiero cambiar las versiones manualmente usando n / nvm o empujar el código a Travis CI solo para ejecutar las pruebas.
Por eso creé a Trevor. Lee .travis.yml y ejecuta pruebas en todas las versiones que solicitó, al igual que Travis CI. Ahora, puedes probar antes de presionar y mantener limpio tu historial de git.
Similar a la de Scott McLeod, pero esto también genera una secuencia de comandos bash para ejecutar los pasos desde .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
Travis-ci ofrece una nueva infraestructura basada en contenedores que utiliza la ventana acoplable. Esto puede ser muy útil si está intentando solucionar problemas de una compilación de travis-ci reproduciéndola localmente. Esto está tomado de la documentación de Travis CI.
Solución de problemas localmente en una imagen de Docker
Si tiene problemas para rastrear el problema exacto en una compilación, a menudo ayuda a ejecutar la compilación localmente. Para hacer esto, 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.
Ejecución de una imagen de Docker basada en contenedor localmente
- Descargar e instalar el motor Docker.
Seleccione una imagen de Docker Hub . Si no estás utilizando una imagen específica del idioma, selecciona
ci-ruby
. Abra un terminal e inicie una sesión interactiva de Docker utilizando la URL de la imagen:docker run -it travisci/ci-ruby /bin/bash
Cambie al usuario de
travis
:su - travis
- Clona tu repositorio git en la carpeta
/
de la imagen. - Instalar manualmente las dependencias.
- Ejecute manualmente su comando de construcción Travis CI.
Use wwtd (lo que travis haría) ruby gem para ejecutar pruebas en su máquina local aproximadamente como lo harían en travis.
Volverá a crear la matriz de compilación y ejecutará cada configuración, lo que es excelente para la configuración de la comprobación de cordura antes de presionar.
gem i wwtd
wwtd
ACTUALIZACIÓN: Ahora tengo una respuesta completa "llave en mano", todo en uno, consulte https://.com/a/49019950/300224 . Sólo tardé 3 años en averiguarlo!
De acuerdo con la documentación de Travis: https://github.com/travis-ci/travis-ci hay una concocción de proyectos que se unen para entregar el servicio web de Travis CI que conocemos y amamos. El siguiente subconjunto de proyectos parece permitir la funcionalidad de make test
locales utilizando el .travis.yml
en su proyecto:
travis-build
travis-build crea el script de compilación para cada trabajo. Toma la configuración del archivo .travis.yml
y crea una secuencia de comandos bash
que luego se ejecuta en el entorno de compilación por travis-worker.
travis-libros de cocina
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 compilación en un entorno limpio. Transmite la salida del registro a travis-logs y empuja las actualizaciones de estado (inicio / finalización de la compilación) a travis-hub.
(Los otros subproyectos son responsables de comunicarse con GitHub, su interfaz web, correo electrónico y su API).
ACTUALIZACIÓN: esta respuesta ya no está actualizada.
Puedes probar https://github.com/jolicode/JoliCi
usa la ventana acoplable 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.