Despliegue continuo - EGC-Decide/locaste GitHub Wiki
Este es el proceso de automatización del despliegue de aplicaciones una vez la build de una plataforma de integración continúa ha sido activada de forma exitosa.
El proceso es realmente simple y permite la posibilidad de añadir aplicaciones independientes para cada rama.
Pasos:
-
Siguiendo el tutorial en EGC-wiki crea un Heroku Procfile junto con la nueva aplicación.
-
Añade la información necesaria en el archivo .travis.xml, esta información está relacionada con la creación de un nuevo job, el cual será ejecutado una vez los tests de Python 3.5 y 3.6 hayan sido pasados. Este job tiene el deber de identificar la plataforma para desplegar, el nombre de la aplicación y la clave de API (junto con cierta información menor, como evitar los tests, pues estos deben ser satisfactorios para poder lanzar el job y ya fueron ejecutados, por lo que repetir el proceso es innecesario y supone mayor lentitud).
2.1. Para generar la clave de API puedes hacer uso del comando provisto por travis cli, que obtiene la clave de API de Heroku y la añade al archivo .travis.xml (hay que ser cuidadoso pues se necesita modificar .travis.xml después de haber usado el comando, la clave de API estará disponible dentro):
travis encrypt $(heroku auth:token) --add deploy.api_key
-
Lo siguiente es añadir los cambios necesarios a decide/decide/settings.py que son descritos en EGC-wiki.
-
Finalmente, se puede realizar un cambio y hacer push de estos a la rama master para así poder comprobar que los cambios son realmente desplegados después de una build satisfactoria.
-
Si se necesita crear un superuser (admin), se puede utilizar el siguiente comando en terminal (habiendo iniciado sesión con la cuenta de locaste):
heroku run -a locaste-decide "sh -c 'cd decide && python manage.py createsuperuser'"
-
En caso de tener algún problema siempre se puede consultar locaste-decide deploy y forzar un despliegue manual de la rama deseada, esto permite un proceso fácil y rápido para crear nuevas aplicaciones con diferentes ramas.