diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8af9db817ac938cd0595c1badfb2c566368a4f0d..d27a9b8031d8c63da6ba6628ae56aad30dd07b2e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -2,39 +2,62 @@ stages: - build - deploy +variables: + USER_SUPPORT_MAILBOX: alpha-test@erasme.org + build_development: stage: build only: - - master + - development script: - - export NODE_ENV=DEV - export TAG=dev + - export MAIL_SERVICE_BIND_PORT=3000 + - export RABBITMQ_GUI_PORT=15672 - docker-compose build - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker-compose push +build_release: + stage: build + only: + - tags + except: + - /^(?!master).+@/ + script: + - export TAG=$CI_COMMIT_TAG + - export MAIL_SERVICE_BIND_PORT=3000 + - export RABBITMQ_GUI_PORT=15672 + - docker-compose build + - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY + - docker-compose push + deploy_development: stage: deploy only: - - master + - development script: - - export NODE_ENV=DEV - export TAG=dev + - export MAIL_SERVICE_BIND_PORT=3001 + - export RABBITMQ_GUI_PORT=15672 - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker-compose pull - - docker-compose --project-name service-email-${TAG} up -d + - docker-compose --project-name service-email-${TAG} up -d --force-recreate + environment: + name: development deploy_staging: stage: deploy only: - - master + - development when: manual script: - export TAG=staging - - export NODE_ENV=REC - - sed -i 's/DEV_/REC_/g' docker-compose.yml + - export MAIL_SERVICE_BIND_PORT=3101 + - export RABBITMQ_GUI_PORT=15673 - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - TAG=dev docker-compose pull - docker tag $CI_REGISTRY/refonte-data/service-email:dev $CI_REGISTRY/refonte-data/service-email:${TAG} - docker push $CI_REGISTRY/refonte-data/service-email:${TAG} - - docker-compose --project-name service-email-${TAG} up -d + - docker-compose --project-name service-email-${TAG} up -d --force-recreate + environment: + name: staging \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index b3cc18cf21a6cfb0a3f84ef6a63bf3c9d5e7ba3a..07e7a82d591615af6b2cada8478141524d2a1404 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM node:8 +FROM node:8-alpine # Create app directory WORKDIR /app diff --git a/docker-compose.yml b/docker-compose.yml index 8e0ffe83ccd31a948a7cf79e1503447fc4364963..ec9e000be5767493c7c80dce5af0451875c864b9 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,32 +1,31 @@ -version: '3.1' +version: "3.1" services: - service-email: - container_name: service-email-${TAG} + + mail-service: build: . image: registry.alpha.grandlyon.com/refonte-data/service-email:${TAG} ports: - - ${DEV_SERVICE_EMAIL_PORT}:3000 + - ${MAIL_SERVICE_BIND_PORT}:3000 environment: - - NODE_ENV=${NODE_ENV} - - PLATEFORM_DATA_EMAIL=${DEV_PLATEFORM_DATA_EMAIL} - - RABBITMQ_USER=${DEV_RABBITMQ_USER} - - RABBITMQ_PASSWORD=${DEV_RABBITMQ_PASSWORD} + - USER_SUPPORT_MAILBOX=${USER_SUPPORT_MAILBOX} + - RABBITMQ_USER=rabbitmq-user + - RABBITMQ_PASSWORD=${RABBITMQ_PASSWORD} - GROUP_HEADER=x-consumer-groups - EMAIL_WRITER_GROUP_NAME=email-writer restart: unless-stopped + rabbitmq: - image: 'rabbitmq:3-management-alpine' - container_name: rabbitmq-${TAG} + image: rabbitmq:3-management-alpine ports: - - ${DEV_RABBITMQ_STANDARD_PORT}:5672 # standard port for communication - - ${DEV_RABBITMQ_INTERFACE_PORT}:15672 # graphique interface + # - ${RABBITMQ_LISTENING_PORT}:5672 # standard port for communication + - ${RABBITMQ_GUI_PORT}:15672 # graphic interface environment: - - RABBITMQ_DEFAULT_USER=${DEV_RABBITMQ_USER} - - RABBITMQ_DEFAULT_PASS=${DEV_RABBITMQ_PASSWORD} + - RABBITMQ_DEFAULT_USER=rabbitmq-user + - RABBITMQ_DEFAULT_PASS=${RABBITMQ_PASSWORD} volumes: - - rabbitmqPersistence:/var/lib/rabbitmq - restart: unless-stopped + - rabbitmq-data-volume:/var/lib/rabbitmq + restart: unless-stopped volumes: - rabbitmqPersistence: \ No newline at end of file + rabbitmq-data-volume: diff --git a/package.json b/package.json index fe1da5813980e4e7d7b12f3f8d6d60eb917cef4f..928adb12d7491e24fb791b963917b2859cb7ba9c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "service-email", - "version": "0.0.0", + "version": "1.0.0", "description": "description", "author": "", "license": "MIT", diff --git a/src/configuration/config.service.ts b/src/configuration/config.service.ts index a1ac45a97bafbc96c35ba01ddc8d28ae315f5d27..31735ea6b5279ed3724bd333dedcd9744684c001 100644 --- a/src/configuration/config.service.ts +++ b/src/configuration/config.service.ts @@ -20,7 +20,7 @@ export class ConfigService { // Initializing conf with values from var env this._config.rabbitMQ.user = process.env.RABBITMQ_USER; this._config.rabbitMQ.password = process.env.RABBITMQ_PASSWORD; - this._config.plateformDataEmail = process.env.PLATEFORM_DATA_EMAIL; + this._config.userSupportMailbox = process.env.USER_SUPPORT_MAILBOX; this._config.groupNames.emailWriter = process.env.EMAIL_WRITER_GROUP_NAME; this._config.groupHeader = process.env.GROUP_HEADER; } diff --git a/src/configuration/config.ts b/src/configuration/config.ts index 9aa4d6e46798b11dbee24572805b06b2b6ae1d61..8e8e0bf376b57c0d6c6d5d2a1c78f01fd7a837fb 100644 --- a/src/configuration/config.ts +++ b/src/configuration/config.ts @@ -6,7 +6,7 @@ export const config = { port: '5672', }, mailerQueue: 'portail-data-send-email', - plateformDataEmail: '', + userSupportMailbox: '', imageHost: 'https://highway-to-data.alpha.grandlyon.com/email-template-assets', groupNames: { emailWriter: '', diff --git a/src/configuration/template.env b/src/configuration/template.env index 82d123b0c3466131e5818918e89fda20b20ef7b0..567beae6bdcee0fb35a49ee7357870d8cd22be99 100644 --- a/src/configuration/template.env +++ b/src/configuration/template.env @@ -1,3 +1,3 @@ RABBITMQ_USER= RABBITMQ_PASSWORD= -PLATEFORM_DATA_EMAIL= \ No newline at end of file +USER_SUPPORT_MAILBOX= \ No newline at end of file diff --git a/src/email/email.service.ts b/src/email/email.service.ts index 82ed9305f4879a3a5138cc5f4755b64317f9a4b0..e998884318a7be6cd56d2a9b4d3956f35b7879d4 100644 --- a/src/email/email.service.ts +++ b/src/email/email.service.ts @@ -36,7 +36,7 @@ export class EmailService { }); const adminEmail = new EmailWithoutFrom(); - adminEmail.to = [this.config.plateformDataEmail]; + adminEmail.to = [this.config.userSupportMailbox]; adminEmail.replyTo = contactForm.email; adminEmail.subject = contactForm.subject; adminEmail.html = adminEmailBody; @@ -73,7 +73,7 @@ export class EmailService { imageHost: this.config.imageHost, }); const feedbackEmail = new EmailWithoutFrom(); - feedbackEmail.to = [this.config.plateformDataEmail]; + feedbackEmail.to = [this.config.userSupportMailbox]; feedbackEmail.subject = 'Feedback'; feedbackEmail.html = feedbackEmailBody; @@ -89,7 +89,7 @@ export class EmailService { const mailerQueue = this.config.mailerQueue; let email = new Email(); - email.from = this.config.plateformDataEmail; + email.from = this.config.userSupportMailbox; email = Object.assign(email, emailInfo); Logger.log('[-] send method');