Commit 06452d65 authored by Pedro Eduardo Trujillo's avatar Pedro Eduardo Trujillo
Browse files

Pone al día el template

parent 70040507
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
UNIT_NAME=functional-unit
UNIT_NAME=template
COMMANDS_PORT=port1
VIEW_PORT=port2
+39 −21
Original line number Diff line number Diff line
@@ -9,10 +9,12 @@ maven-build-lib:
  stage: build-lib
  image: redmic/maven-gitlab
  variables:
    MAVEN_OPTS: -Dmaven.repo.local=.m2/repository
    SPRING_PROFILES_ACTIVE: test
    MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository"
  only:
    - branches
  except:
    - master
  cache:
    paths:
      - .m2/repository/
@@ -32,10 +34,12 @@ maven-build-commands:
  stage: build-services
  image: redmic/maven-gitlab
  variables:
    MAVEN_OPTS: -Dmaven.repo.local=.m2/repository
    SPRING_PROFILES_ACTIVE: test
    MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository"
  only:
    - branches
  except:
    - master
  cache:
    paths:
      - .m2/repository/
@@ -56,10 +60,12 @@ maven-build-view:
  stage: build-services
  image: redmic/maven-gitlab
  variables:
    MAVEN_OPTS: -Dmaven.repo.local=.m2/repository
    SPRING_PROFILES_ACTIVE: test
    MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository"
  only:
    - branches
  except:
    - master
  cache:
    paths:
      - .m2/repository/
@@ -139,15 +145,17 @@ deploy-commands-dev:
    DOCKER_DRIVER: overlay2
    SSH_REMOTE: ${DEV_SSH_REMOTE}
    SERVICE: ${CI_PROJECT_NAME}-commands
    ACTIVE_PROFILE: pre
    IMAGE_NAME: ${CI_REGISTRY_IMAGE}
    IMAGE_TAG: ${CI_COMMIT_SHA}
    COMPOSE_FILE: docker-compose.${CI_PROJECT_NAME}-commands.tmpl.yml:docker-compose.${CI_PROJECT_NAME}-commands.dev.yml
  services:
    - docker:dind
  script:
    - deploy.sh SPRING_PROFILES_ACTIVE=${ACTIVE_PROFILE} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE}
    - >
      deploy.sh IMAGE_NAME=${IMAGE_NAME} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE}
      SPRING_PROFILES_ACTIVE=pre
  environment:
    name: dev/commands
    name: dev/${CI_PROJECT_NAME}-commands
    url: https://appdev.${DEV_PUBLIC_HOSTNAME}/api/${CI_PROJECT_NAME}/commands
  only:
    - dev
@@ -159,15 +167,17 @@ deploy-view-dev:
    DOCKER_DRIVER: overlay2
    SSH_REMOTE: ${DEV_SSH_REMOTE}
    SERVICE: ${CI_PROJECT_NAME}-view
    ACTIVE_PROFILE: pre
    IMAGE_NAME: ${CI_REGISTRY_IMAGE}
    IMAGE_TAG: ${CI_COMMIT_SHA}
    COMPOSE_FILE: docker-compose.${CI_PROJECT_NAME}-view.tmpl.yml:docker-compose.${CI_PROJECT_NAME}-view.dev.yml
  services:
    - docker:dind
  script:
    - deploy.sh SPRING_PROFILES_ACTIVE=${ACTIVE_PROFILE} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE}
    - >
      deploy.sh IMAGE_NAME=${IMAGE_NAME} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE}
      SPRING_PROFILES_ACTIVE=pre
  environment:
    name: dev/view
    name: dev/${CI_PROJECT_NAME}-view
    url: https://appdev.${DEV_PUBLIC_HOSTNAME}/api/${CI_PROJECT_NAME}/view
  only:
    - dev
@@ -179,15 +189,17 @@ deploy-commands-supporting-branch:
    DOCKER_DRIVER: overlay2
    SSH_REMOTE: ${DEV_SSH_REMOTE}
    SERVICE: ${CI_PROJECT_NAME}-commands
    ACTIVE_PROFILE: pre
    IMAGE_NAME: ${CI_REGISTRY_IMAGE}
    IMAGE_TAG: ${CI_COMMIT_SHA}
    COMPOSE_FILE: docker-compose.${CI_PROJECT_NAME}-commands.tmpl.yml:docker-compose.${CI_PROJECT_NAME}-commands.dev.yml
  services:
    - docker:dind
  script:
    - deploy.sh SPRING_PROFILES_ACTIVE=${ACTIVE_PROFILE} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE}
    - >
      deploy.sh IMAGE_NAME=${IMAGE_NAME} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE}
      SPRING_PROFILES_ACTIVE=pre
  environment:
    name: dev/commands
    name: dev/${CI_PROJECT_NAME}-commands
    url: https://appdev.${DEV_PUBLIC_HOSTNAME}/api/${CI_PROJECT_NAME}/commands
  only:
    - branches
@@ -203,15 +215,17 @@ deploy-view-supporting-branch:
    DOCKER_DRIVER: overlay2
    SSH_REMOTE: ${DEV_SSH_REMOTE}
    SERVICE: ${CI_PROJECT_NAME}-view
    ACTIVE_PROFILE: pre
    IMAGE_NAME: ${CI_REGISTRY_IMAGE}
    IMAGE_TAG: ${CI_COMMIT_SHA}
    COMPOSE_FILE: docker-compose.${CI_PROJECT_NAME}-view.tmpl.yml:docker-compose.${CI_PROJECT_NAME}-view.dev.yml
  services:
    - docker:dind
  script:
    - deploy.sh SPRING_PROFILES_ACTIVE=${ACTIVE_PROFILE} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE}
    - >
      deploy.sh IMAGE_NAME=${IMAGE_NAME} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE}
      SPRING_PROFILES_ACTIVE=pre
  environment:
    name: dev/view
    name: dev/${CI_PROJECT_NAME}-view
    url: https://appdev.${DEV_PUBLIC_HOSTNAME}/api/${CI_PROJECT_NAME}/view
  only:
    - branches
@@ -227,15 +241,17 @@ deploy-commands-pro:
    DOCKER_DRIVER: overlay2
    SSH_REMOTE: ${PRO_SSH_REMOTE}
    SERVICE: ${CI_PROJECT_NAME}-commands
    ACTIVE_PROFILE: prod
    IMAGE_NAME: ${CI_REGISTRY_IMAGE}
    IMAGE_TAG: ${CI_COMMIT_TAG}
    COMPOSE_FILE: docker-compose.${CI_PROJECT_NAME}-commands.tmpl.yml:docker-compose.${CI_PROJECT_NAME}-commands.prod.yml
  services:
    - docker:dind
  script:
    - deploy.sh SPRING_PROFILES_ACTIVE=${ACTIVE_PROFILE} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE}
    - >
      deploy.sh IMAGE_NAME=${IMAGE_NAME} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE}
      SPRING_PROFILES_ACTIVE=prod
  environment:
    name: pro/commands
    name: pro/${CI_PROJECT_NAME}-commands
    url: https://${PRO_PUBLIC_HOSTNAME}/api/${CI_PROJECT_NAME}/commands
  only:
    - tags
@@ -248,15 +264,17 @@ deploy-view-pro:
    DOCKER_DRIVER: overlay2
    SSH_REMOTE: ${PRO_SSH_REMOTE}
    SERVICE: ${CI_PROJECT_NAME}-view
    ACTIVE_PROFILE: prod
    IMAGE_NAME: ${CI_REGISTRY_IMAGE}
    IMAGE_TAG: ${CI_COMMIT_TAG}
    COMPOSE_FILE: docker-compose.${CI_PROJECT_NAME}-view.tmpl.yml:docker-compose.${CI_PROJECT_NAME}-view.prod.yml
  services:
    - docker:dind
  script:
    - deploy.sh SPRING_PROFILES_ACTIVE=${ACTIVE_PROFILE} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE}
    - >
      deploy.sh IMAGE_NAME=${IMAGE_NAME} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE}
      SPRING_PROFILES_ACTIVE=prod
  environment:
    name: pro/view
    name: pro/${CI_PROJECT_NAME}-view
    url: https://${PRO_PUBLIC_HOSTNAME}/api/${CI_PROJECT_NAME}/view
  only:
    - tags
+3 −4
Original line number Diff line number Diff line
@@ -4,9 +4,8 @@ ENV SERVICE=undefined-service

COPY /*/dist/*.jar ./

EXPOSE port1 port2
EXPOSE ${COMMANDS_PORT} ${VIEW_PORT}

ENTRYPOINT java $JAVA_OPTS \
ENTRYPOINT java ${JAVA_OPTS} \
	-Djava.security.egd=file:/dev/./urandom \
	-Dlogging.level.org.springframework=${LOG_LEVEL} \
	-jar /opt/redmic/${SERVICE}.jar
	-jar ${DIRPATH}/${SERVICE}.jar
+18 −16
Original line number Diff line number Diff line
# Functional unit
# Template

[![pipeline status](https://git.redmic.net/redmic-server/functional-unit/badges/dev/pipeline.svg)](https://git.redmic.net/redmic-server/functional-unit/commits/dev) [![coverage report](https://git.redmic.net/redmic-server/functional-unit/badges/dev/coverage.svg)](https://git.redmic.net/redmic-server/functional-unit/commits/dev)

## Coverage:

  * lib: ![coverage](https://git.redmic.net/redmic-server/functional-unit/badges/dev/coverage.svg?job=maven-build-lib)
  * commands: ![coverage](https://git.redmic.net/redmic-server/functional-unit/badges/dev/coverage.svg?job=maven-build-commands)
  * view: ![coverage](https://git.redmic.net/redmic-server/functional-unit/badges/dev/coverage.svg?job=maven-build-view)
| Metrics | Master | Develop |
|:-:|:-:|:-:|
| CI status | [![pipeline status](https://gitlab.com/redmic-project/server/template/badges/master/pipeline.svg)](https://gitlab.com/redmic-project/server/template/commits/master) | [![pipeline status](https://gitlab.com/redmic-project/server/template/badges/dev/pipeline.svg)](https://gitlab.com/redmic-project/server/template/commits/dev) |
| Total test coverage | [![coverage report](https://gitlab.com/redmic-project/server/template/badges/master/coverage.svg)](https://gitlab.com/redmic-project/server/template/commits/master) | [![coverage report](https://gitlab.com/redmic-project/server/template/badges/dev/coverage.svg)](https://gitlab.com/redmic-project/server/template/commits/dev) |
| Library test coverage | [![coverage report](https://gitlab.com/redmic-project/server/template/badges/master/coverage.svg?job=maven-build-lib)](https://gitlab.com/redmic-project/server/template/commits/master) | [![coverage report](https://gitlab.com/redmic-project/server/template/badges/dev/coverage.svg?job=maven-build-lib)](https://gitlab.com/redmic-project/server/template/commits/dev) |
| Commands test coverage | [![coverage report](https://gitlab.com/redmic-project/server/template/badges/master/coverage.svg?job=maven-build-commands)](https://gitlab.com/redmic-project/server/template/commits/master) | [![coverage report](https://gitlab.com/redmic-project/server/template/badges/dev/coverage.svg?job=maven-build-commands)](https://gitlab.com/redmic-project/server/template/commits/dev) |
| View test coverage | [![coverage report](https://gitlab.com/redmic-project/server/template/badges/master/coverage.svg?job=maven-build-view)](https://gitlab.com/redmic-project/server/template/commits/master) | [![coverage report](https://gitlab.com/redmic-project/server/template/badges/dev/coverage.svg?job=maven-build-view)](https://gitlab.com/redmic-project/server/template/commits/dev) |

Este proyecto sirve de guía para la creación de una nueva unidad funcional (microservicios `commands` y `view` y `lib` asociada).

1. Antes de importar el proyecto, en el fichero `pom.xml`:
	* Reemplazar `functional-unit` por el nombre que se le quiere dar a la unidad funcional.
	* Reemplazar `template` por el nombre que se le quiere dar a la unidad funcional.
	* Definir la versión de `redmic` (x.y.z) con la más reciente.
	* Definir la versión de Spring deseada.

2. En los directorios `functional-unit-*`:
2. En los directorios `template-*`:
	* Renombrarlos con el nombre elegido en el `pom.xml`.
	* En sus respectivos `pom.xml` reemplazar `functional-unit` por el nombre elegido en el `pom.xml` global.
	* En general, consultar los proyectos de [plantilla de microservicio](https://git.redmic.net/redmic-server/microservice-template) y [plantilla de librería](https://git.redmic.net/redmic-server/library-template), obviando los detalles de despliegue e integración continua de cada uno (estas tareas se delegan al padre en este caso).
	* En sus respectivos `pom.xml` reemplazar `template` por el nombre elegido en el `pom.xml` global.
	* En general, consultar los proyectos de [plantilla de microservicio](https://gitlab.com/redmic-project/server/template/microservice-template) y [plantilla de librería](https://gitlab.com/redmic-project/server/template/library-template), obviando los detalles de despliegue e integración continua de cada uno (estas tareas se delegan al padre en este caso).

3. Importar como proyecto maven.

4. Revisar el resto de ficheros del proyecto, remplazando `functional-unit` por el nombre adecuado (incluyendo la primera línea de este mismo fichero).
4. Revisar el resto de ficheros del proyecto, remplazando `template` por el nombre adecuado (incluyendo la primera línea de este mismo fichero).

5. Modificar los puertos de los microservicios, reemplazando `port1` y `port2` en los ficheros `Dockerfile`, `.env` y definirlos respectivamente en el fichero `src/main/resources/application.properties` de *commands* y *view*.
5. Modificar los puertos de los microservicios, reemplazando `port1` y `port2` en el fichero `.env` y definirlos respectivamente en el fichero `src/main/resources/application.properties` de *commands* y *view*.

6. En los ficheros `docker-compose.*.yml`, revisar las redes a las que pertenecerán. Además, se puede definir la memoria disponible para cada microservicio, usando la variable de entorno *JAVA_OPTS* (por ejemplo, `JAVA_OPTS=-Xmx512m -Xss512m`).
6. En los ficheros `docker-compose.*.yml`, revisar las redes a las que pertenecerán, los volúmenes a añadir, etc. Además, se puede definir la memoria disponible para cada microservicio, usando la variable de entorno *JAVA_OPTS* (por ejemplo, `JAVA_OPTS=-Xmx512m -Xss512m`).

7. Configurar en el fichero `pom.xml` el *spring-boot-starter* adecuado para cada microservicio y añadir las dependencias deseadas.

* Para más información acceder a [Guía para desarrollar una unidad funcional](https://git.redmic.net/redmic-server/functional-unit-template/wikis/home)
8. Actualizar la tabla inicial de estado, eliminar estas instrucciones y documentar adecuadamente.

* Para más información acceder a [Guía para desarrollar una unidad funcional](https://gitlab.com/redmic-project/server/template/functional-unit-template/wikis/home)
+1 −1
Original line number Diff line number Diff line
version: '3.5'

services:
  functional-unit-commands:
  template-commands:
    container_name: ${UNIT_NAME}-commands
    restart: on-failure:3
    ports:
Loading