Estado de la integración continua de los proyectos:
Módulo | Demo | |||||
---|---|---|---|---|---|---|
Loader e3b » | ||||||
Agents e3b » | Abrir » | |||||
InciManager_e3b » | Abrir » | |||||
InciDashBoard_e3b » | Abrir » |
Sistema informático de gestión de incidencias. Equipo de prácticas @Arquisoft/course1718_e3b.
Este proyecto ha sido desarrollado como práctica de la asignatura Arquitectura del Software perteneciente al tercer curso del Grado en Ingeniería Informática del Software impartido en la Escuela de Ingenieria Informática (EII) de la Universidad de Oviedo durante el curso 2017/2018.
- Descripción del proyecto
- Como instalar el proyecto
- Como ejecutar el proyecto
- Como probar el proyecto
- Creditos del proyecto
- Como contribuir al proyecto
- Licencia del proyecto
- Máquina virtual de Java: OpenJDK (versión: >= 1.6).
- Sistema de control de versiones: GIT (versión: >= 2.16).
- Herramienta de construcción de proyectos: Apache Maven (versión: >= 3.5).
Descarga la última versión del codigo fuente desde el repositorio oficial del proyecto:
git clone https://github.com/Arquisoft/Inci_e3b_modules.git --recurse-submodules
Los 4 repositorios incluidos como submódulos, hacen referencia a un commit del repositorio original. Para actualizar la referencia de cada módulo a la última versión, hay que ejectuar desde el directorio raiz del repositorio la siguiente orden:
git submodule foreach git pull origin master
También se puede ejecutar el archivo update_modules.bat, que contiene la orden anterior.
Situarse en el directorio de descarga del código fuente y ejecutar:
mvn clean install
En caso de ser necesario es posible purgar el repositorio local con las dependencias del proyecto ejecutando:
mvn dependency:purge-local-repository clean install -U
- Apache Maven (versión: >= 3.5).
- Docker Engine (versión: >= 18.03.1-ce)
Si se dispone de una instancia de Docker ya instalada, es posible desplegar automáticamente todos los servicios necesarios utilizando la herramienta de orquestación de contenedores Docker-Compose. Para ello, basta con situarse en el directorio raiz del proyecto (donde se encuentra el fichero docker-compose.yml) y ejecutar en la consola:
docker-compose up
De forma opcional, es posible combinar al despliegue anterior diversos contenedores auxiliares destinados a gestionar y supervisar el funcionamiento de dichos servicios:
docker-compose -f docker-compose.yml -f docker-compose.management.yml up
Una vez desplegado, cada contenedor es accesible a través del puerto correspondiente del servidor Docker donde se ejecutan dichos contenedores (en el caso de tratarse de la misma máquina, puede sustituirse por la combinación: localhost:puerto):
CONTENEDOR | DIRECCIÓN | FICHERO |
---|---|---|
postgres | postgres:5432 | docker-compose.yml |
zookeeper | zookeeper:2181 | docker-compose.yml |
kafka | kafka:9092 | docker-compose.yml |
pgadmin4 | pgadmin4:5433 | docker-compose.management.yml |
kafka-manager | kafka-manager:9000 | docker-compose.management.yml |
IMPORTANTE: En el caso de utilizar Docker Compose con Docker Toolbox/Machine
en MS-Windows, es necesario establecer primero la variable de entorno
COMPOSE_CONVERT_WINDOWS_PATHS=1
antes de poder ejecutar con exito docker-compose
(breaking changes 1.9.0 (2016-11-16)).
Para detener la ejecución de todos los servicios de forma interactiva es suficiente con la combinación de teclas Ctrl+C o en su defecto, ejecutando la orden:
docker-compose down
Para eliminar en MS-Windows todos los objetos creados en Docker y reiniciar el despliegue desde cero puede ejecutarse la siguiente secuencia de ordenes (disponibles en el fichero por lotes: 'bin/docker-remove-objects.bat') :
@echo off
REM Stop all containers:
docker ps
FOR /f "tokens=*" %%i IN ('docker ps -aq') DO docker container stop %%i
REM Remove all container:
docker container ls
FOR /f "tokens=*" %%i IN ('docker ps -aq') DO docker container rm %%i
REM Remove all volumes:
docker volume ls
FOR /f "tokens=*" %%i IN ('docker volume ls -q') DO docker volume rm %%i
REM Remove all networks:
docker network ls
FOR /f "tokens=*" %%i IN ('docker network ls -q') DO docker network rm %%i
REM Remove all images:
docker image ls
FOR /f "tokens=*" %%i IN ('docker images --format "{{.ID}}"') DO docker rmi %%i
pause
Para arrancar todos los servicios (incluida la base de datos) hay que ejecutar el fichero batch execute_modules.bat.
Este fichero batch lleva a cabo las siguientes acciones:
- Elimina los ficheros temporales de kafka (topics, logs etc...) para evitar colisiones y logs corruptos durante la ejecución
- Ejecuta una instancia la base de datos HSQLDB
- Inicia Apache Zookeeper y Apache Kafka
- Finalmente ejecuta los módulos de Agentes, InciManager e InciDashboard, para así poder testear la funcionalidad completa.
Algunas imagenes de la página de login de los módulos Agents, InciManager e InciDashboard (se puede ver más información la wiki: Interfaz de usuario - capturas de pantalla:
Para ejecutar exclusivamente el conjunto de pruebas de aceptación dentro de la
fase verify
de Maven (e independientemente del resto de pruebas de
integración), puede hacerse ejecutando:
mvn -Dit.test=AcceptanceTests verify
Si además se quiere limitar la ejecución a una caracteristica (feature) concreta
del conjunto de caracteristicas disponibles en el directorio src/test/resources/features/
:
mvn -Dit.test=AcceptanceTests \
-Dcucumber.options="src/test/resources/features/autenticacion.feature"\
verify
Opcionalmente tambien es posible limitar la ejecución al conjunto de escenarios etiquetados por una o varias etiquetas:
mvn -Dit.test=AcceptanceTests -Dcucumber.options="--tags @qa_ready,@login" verify
Concluida la ejecución de las pruebas es posible consultar el resultado de las
mismas en el fichero de salida: ${project.build.directory}/cucumber/index.html
La información completa sobre como contribuir al proyecto: código de conducta, flujo de trabajo, etc, puede consultarse en el fichero CONTRIBUTING.md.
Contribuidor | Usuario GitHUB | Grupo prácticas |
---|---|---|
Diego Álvarez Guinarte <uo251682(AT)uniovi.es> | @Diego_Sh | @Arquisoft/course1718_e3b1 |
Manuel Junco Diez <uo252010(AT)uniovi.es> | @UO252010 | @Arquisoft/course1718_e3b1 |
Pablo Gonzalez Martinez <uo245699(AT)uniovi.es> | @pablosky5 | @Arquisoft/course1718_e3b1 |
Ivan Suarez Castiñeiras <uo244730(AT)uniovi.es> | @UO244730 | @Arquisoft/course1718_e3b1 |
Miguel Martínez Serrano <uo237030(AT)uniovi.es> | @miguelms95 | @Arquisoft/course1718_e3b2 |
José Antonio Marín Álvarez <uo212006(AT)uniovi.es> | @TonyMarin | @Arquisoft/course1718_e3b2 |
Daniel Martínez Valerinao <uo252438(AT)uniovi.es> | @Gemeto | @Arquisoft/course1718_e3b2 |
Kilian Pérez González <uo21504(AT)uniovi.es> | @kilianpg | @Arquisoft/course1718_e3b2 |
Andrés Ángel González Granda <uo68216(AT)uniovi.es> | @AndresAngelGG | @Arquisoft/course1718_e3b2 |
- Equipo docente de la asignatura Arquitectura del Software:
- Jose Emilio Labra Gayo <labra@uniovi.es> [@labra].
- Aquilino Adolfo Juan Fuente <aajuan@uniovi.es>
- Juan Luis Mateo Cerdan <mateojuan@uniovi.es>
- Herminio García González [@herminiogg].
El contenido completo de este proyecto esta licenciado bajo los terminos de la licencia: GNU General Public License v3.0. Los detalles completos de la licencia pueden consultarse en el fichero: LICENSE.