From 5d9c46296604d1c296b9b849d9c71dacf78f8fb5 Mon Sep 17 00:00:00 2001 From: FORESTIER Fabien <fabien.forestier@soprasteria.com> Date: Wed, 12 Feb 2020 15:27:05 +0100 Subject: [PATCH] Remove deployment job from the CI as it has been moved in a dedicated job --- .gitlab-ci.yml | 59 ++++------------------------------------------ README.md | 26 +++++++++++--------- docker-compose.yml | 40 +++++++++++++++---------------- 3 files changed, 40 insertions(+), 85 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 436d7ac..3949b58 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,19 +1,14 @@ stages: - sonar-analysis - build - - deploy variables: - LEGACY_AUTH_SERVICE_URL: https://download.data.grandlyon.com/auth - ADMIN_USERNAME: data-beta-grandlyon-com - USER_SUPPORT_MAILBOX: alpha-test@erasme.org - ACCESS_TOKEN_COOKIE_KEY: access_token - SONAR_URL: https://sonarqube.forge.grandlyon.com + SONAR_URL: https://sonarqube.forge.grandlyon.com sonarqube: stage: sonar-analysis only: - - development + - master before_script: - export PATH=$PATH:/usr/local/bin/sonar-scanner-3.2.0.1227-linux/bin/ - export NODE_PATH=$NODE_PATH:`npm root -g` @@ -33,7 +28,7 @@ build_development: only: - development script: - - export TAG=dev + - export TAG=$CI_COMMIT_SHORT_SHA - export MIDDLEWARE_LEGACY_SERVICE_BIND_PORT=3004 - export REDIS_SENTINEL_PORT=26379 - export REDIS_SLAVE_PORT=6380 @@ -41,13 +36,12 @@ build_development: - docker-compose build - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker-compose push + - "curl -X POST -F token=$CI_JOB_TOKEN -F ref=master -F variables[TAG]=${TAG} https://forge.grandlyon.com/api/v4/projects/337/trigger/pipeline" build_release: stage: build only: - tags - # except: - # - /^(?!master).+@/ script: - export TAG=$(echo $CI_COMMIT_TAG | sed 's/v//g') - export MIDDLEWARE_LEGACY_SERVICE_BIND_PORT=3004 @@ -56,47 +50,4 @@ build_release: - export REDIS_MASTER_PORT=6379 - docker-compose build - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - - docker-compose push - -deploy_development: - stage: deploy - only: - - development - script: - - export TAG=dev - - export MIDDLEWARE_LEGACY_SERVICE_BIND_PORT=3004 - - export REDIS_SENTINEL_PORT=26379 - - export REDIS_SLAVE_PORT=6380 - - export REDIS_MASTER_PORT=6379 - - export SERVICE_EMAIL_URL=http://vm-refonte-data-2:9000/email - - export FRONT_END_URL=https://data-reloaded-dev.alpha.grandlyon.com/fr - - export API_KEY=$DEV_API_KEY - - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - - docker-compose pull - - docker-compose --project-name middleware-legacy-auth-${TAG} up -d --force-recreate - environment: - name: development - -deploy_staging: - stage: deploy - only: - - development - when: manual - script: - - export TAG=staging - - export MIDDLEWARE_LEGACY_SERVICE_BIND_PORT=3104 - - export REDIS_SENTINEL_PORT=26479 - - export REDIS_SLAVE_PORT=6480 - - export REDIS_MASTER_PORT=6479 - - export SERVICE_EMAIL_URL=http://vm-refonte-data-2:9100/email - - export FRONT_END_URL=https://data-reloaded-rec.alpha.grandlyon.com/fr - - export API_KEY=$REC_API_KEY - - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - - TAG=dev docker-compose pull - - export REGISTRY_PATH=web-et-numerique/web-et-numerique-internet/data.grandlyon.com/web-portal/components/middlewares/legacy-auth - - docker tag $CI_REGISTRY/$REGISTRY_PATH:dev $CI_REGISTRY/$REGISTRY_PATH:${TAG} - - docker push $CI_REGISTRY/$REGISTRY_PATH:${TAG} - - docker-compose --project-name middleware-legacy-auth-${TAG} up -d --force-recreate - environment: - name: staging - + - docker-compose push \ No newline at end of file diff --git a/README.md b/README.md index 83a4338..65ea7bf 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,13 @@ +# Legacy AUTH middleware + ## Installation +This middleware has been developed with the [NestJS](https://nestjs.com/) framework. It requires [Node.js](https://nodejs.org/en/) in order to run. + +Once Node.js installed on your computer, you will need to install the project's dependencies. Go to the root of the project and run the following command. + ```bash -$ npm install +npm install ``` ## Environment variables @@ -13,7 +19,7 @@ For a local deployment: 1. `cp template.env .env` 2. Edit .env according to the chosen configuration -The values will be read from the file by default, but you can override any of those by exporting manually the variable before launching the service. +The values will be read from the file by default when running with docker. If you run the service outside of docker you can export those variables. ## Running the app without docker @@ -21,26 +27,26 @@ You will need to provide a healthy connection to a database in order for the ser ```bash # development -$ npm run start +npm run start # watch mode -$ npm run start:dev +npm run start:dev # production mode -$ npm run start:prod +npm run start:prod ``` ## Running the app with docker ```bash # build -$ docker-compose build +docker-compose build # deploy -$ docker-compose up [-d] +docker-compose up [-d] # build and deploy -$ docker-compose up --build [-d] +docker-compose up --build [-d] ``` <!-- ## Test @@ -54,6 +60,4 @@ $ npm run test:e2e # test coverage $ npm run test:cov -``` --> - - +``` --> \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index d768caf..ffcb62b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -13,50 +13,50 @@ services: - SERVICE_EMAIL_URL=${SERVICE_EMAIL_URL} - USER_SUPPORT_MAILBOX=${USER_SUPPORT_MAILBOX} - FRONT_END_URL=${FRONT_END_URL} - - VALIDATE_ACCOUNT_URI=connexion - - PASSWORD_RESET_URI=reinitialiser-mon-mot-de-passe + - VALIDATE_ACCOUNT_URI=${VALIDATE_ACCOUNT_URI} + - PASSWORD_RESET_URI=${PASSWORD_RESET_URI} - API_KEY=${API_KEY} - ACCESS_TOKEN_COOKIE_KEY=${ACCESS_TOKEN_COOKIE_KEY} - - IMAGE_HOST=https://minio.alpha.grandlyon.com/email-template-assets - - REDIS_SENTINEL_HOST=redis-sentinel-1 - - REDIS_SENTINEL_PORT=26379 - - REDIS_GROUP_NAME=mymaster + - IMAGE_HOST=${IMAGE_HOST} + - REDIS_SENTINEL_HOST=${REDIS_SENTINEL_HOST} + - REDIS_SENTINEL_PORT=${REDIS_SENTINEL_PORT} + - REDIS_GROUP_NAME=${REDIS_GROUP_NAME} restart: unless-stopped depends_on: - redis-sentinel-1 redis-master: - image: 'bitnami/redis:latest' + image: 'bitnami/redis:5.0.5' environment: - - ALLOW_EMPTY_PASSWORD=yes + - ALLOW_EMPTY_PASSWORD=${ALLOW_EMPTY_PASSWORD} ports: - '${REDIS_MASTER_PORT}:6379' volumes: - redis-master:/bitnami/redis/data + restart: unless-stopped - redis-sentinel-1: - image: 'bitnami/redis-sentinel:latest' + redis-sentinel: + image: 'bitnami/redis-sentinel:5.0.5' environment: - - REDIS_MASTER_HOST=redis-master - - REDIS_MASTER_SET=mymaster + - REDIS_MASTER_HOST=${REDIS_MASTER_HOST} + - REDIS_MASTER_SET=${REDIS_GROUP_NAME} ports: - '${REDIS_SENTINEL_PORT}:26379' - volumes: - - redis-sentinel-1:/bitnami/redis/data + restart: unless-stopped - redis-slave-1: - image: 'bitnami/redis:latest' - command: redis-server --bind 0.0.0.0 --slaveof redis-master 6379 --dir /bitnami/redis/data + redis-slave: + image: 'bitnami/redis:5.0.5' environment: - - ALLOW_EMPTY_PASSWORD=yes + - ALLOW_EMPTY_PASSWORD=${ALLOW_EMPTY_PASSWORD} ports: - '${REDIS_SLAVE_PORT}:6379' + command: redis-server --bind 0.0.0.0 --slaveof redis-master 6379 --dir /bitnami/redis/data volumes: - redis-slave-1:/bitnami/redis/data - + restart: unless-stopped + volumes: redis-master: - redis-sentinel-1: redis-slave-1: -- GitLab