yml with what tutorial travis tool started how gmbh getting python django travis-ci requirements.txt

python - with - ¿Cómo almacenar en caché los requisitos para un proyecto Django en Travis-CI?



travis tool (3)

A medida que Travis-CI está evolucionando y ampliando su conjunto de características, naturalmente se vuelve más y más agradable de usar. Recientemente leí este artículo sobre "Acelerar la construcción". Una compilación para el proyecto Django en el que estoy trabajando toma ~ 25-30 minutos. Casi la mitad de este tiempo se dedica a crear el virtualenv, es decir, instalar los requisitos del proyecto. La otra mitad del tiempo se utiliza para la ejecución de prueba real.

Hay esfuerzos para reducir el tiempo de ejecución de las pruebas. Sin embargo, me preguntaba si una mayor aceleración estaba en juego al almacenar en caché o agrupar los requisitos del proyecto. En cuanto a Plone, parece que hay algunas opciones, ya que utiliza buildout. También estaba mirando a WAD . Por supuesto, al almacenar en memoria caché los requisitos, tendrán que quedar invalidados en una actualización de requisitos.

¿Alguien ha realizado mejoras en la velocidad de compilación de Travis para un proyecto (Django) al reducir el tiempo de configuración?


Con pip 7:

cache: directories: - $HOME/.pip-cache/ install: - pip install --upgrade pip - pip install -r requirements.txt --cache-dir $HOME/.pip-cache


Esto se ha vuelto aún más fácil con los años. La última forma es:

cache: pip

Eso es.


Actualizar Esta es ahora una característica de primera clase de Travis: http://blog.travis-ci.com/2013-12-05-speed-up-your-builds-cache-your-dependencies/

Acabo de jugar con esto y parece que puedes almacenar en caché los paquetes de sitio virtualenv de esta manera (actualizar la ruta de acceso a tu versión de Python):

cache: directories: - /home/travis/virtualenv/python2.7/lib/python2.7/site-packages

Hay un pequeño problema de que no almacena en caché la bin o los directorios src . Intenté almacenar en caché todo el directorio virtualenv, pero obtengo errores extraños para dependencias instaladas a través de git en el directorio src .

Todavía te queda el problema de invalidar los requisitos antiguos. si elimina algo de los requisitos, persistirá en el virtualenv, por lo que tendrá que eliminarlo explícitamente con pip ( pip remove foo ) o esperar hasta que Travis cree una API para invalidar el caché ...

La otra opción es usar la opción --download-cache para pip, luego agregar ese directorio a la caché:

cache: directories: - $HOME/.pip-cache/ install: - pip install -r requirements.txt --download-cache $HOME/.pip-cache

¡Esto hará que las descargas sean más rápidas, pero aún tendrá que compilar e instalar todos los requisitos!