Pedro Gázquez Navarrete, repositorio creado para la realización del proyecto de Infraestructura Virtual el cual realizaré junto al de la asignatura DAI.
##Descripción## El proyecto ha realizar en esta asignatura será la de hacer la Infraestructura Virtual para el proyecto que voy a realizar en DAI ya que también tengo cursada esa asignatura. Este proyecto de DAI se realizará en el lenguaje de programación Python. ##Explicación## Ya que aún no sé en que consistirá mi proyecto de DAI no puedo proporcionar la explicación de qué tipo de proyecto realizaré, no obstante, cuando sepa que hacer actualizaré este apartado pero dado que para DAI se realizará una aplicación web se necesitarán varios servidores y quizá un balanceador para dar soporte de infraestructura virtual a dicha aplicación.
##Inscripción en el certamen de Proyectos Libres de la UGR 2015-2016## Aquí adjunto la imagen de la inscripción realizada correctamente en el Certamen:
Para realizar los tests de mi proyecto he usado la libreria de unittest de python. Son tests flexibles y muy usados en este lenguaje. Los tests que he realizado los he integrado dentro de las herramientas de construcción, incluyendo un objetivo make test en mi makefile. Para configurar el sistema de integración continua de forma que lance los tests automáticamente he usado Travis-CI y Shippable.
#Shippable He creado mi archivo shippable.yml una vez registrado en la página de Shippable y autorizado para que realicen los tests automáticamente. Como se puede ver en la siguiente imagen se realiza todo correctamente.
#Travis Como he hecho con el anterior he creado mi archivo travis.yml, igual que antes registrado con github previamente. Una vez hecho estó como se puede ver en la siguiente imagen el resultado de los tests es positivo:
He añadido varias funcionalidades a mi app, como por ejemplo la definición de varias rutas en mi archivo python para la redirección de cada html integrando cada uno de ellos en un template diferente. Para desplegar mi app en Heroku, he tenido que definir mi archivo Procfile:
web: python formu.py
y el que ya tenía que también es necesario de requirements.txt:
Flask==0.10.1
gunicorn==19.3.0
html5lib==0.999
itsdangerous==0.24
Jinja2==2.8
MarkupSafe==0.23
requests==2.2.1
six==1.5.2
ssh-import-id==3.21
urllib3==1.7.1
virtualenv==13.1.2
Werkzeug==0.10.4
WTForms==2.0.2
wheel==0.24.0
yolk==0.4.3
He subido la aplicación a Heroku, este es el enlace a ella. Para ello lo que he hecho ha sido, primero registrarme en heroku, después he clonado mi repositorio donde guardo la aplicación. Lo proximo que hay que hacer es teclear las siguientes órdenes en el terminal dentro del repositorio de nuestra aplicación que hemos clonado:
heroku create
git push heroku master
Con heroku create, si no le indicamos nada, nos crea la app con un nombre aleatorio, que en mi caso ha sido warm-sands-2560. Lo proximo que he hecho ha sido crear un proceso de integración contínua junto al despliegue automático tanto en Heroku como en Snap CI. Para realizarlo en heroku, al conectarlo con GitHub debes aceptar la siguiente ventana emergente:
Una vez hecho esto, habilitamos que no despliegue hasta que no pase los tests para la IC:
Como se puede ver en la imagen el proceso de intregración continua está correctamente configurado. Otra opción es hacerlo con Snap CI, en el cual debes conectarte con GitHub y aceptar las condiciones:
Y por último, podemos comprobar que también está correctamente configurado el proceso de IC con Snap CI: