From 7ab8302ce36b491a4e6179167293fd4db45b0ac4 Mon Sep 17 00:00:00 2001
From: FORESTIER Fabien <fabien.forestier@soprasteria.com>
Date: Fri, 7 Feb 2020 16:03:55 +0100
Subject: [PATCH] Remove conf and code related to deployment as it has been
 moved to a dedicated project

---
 .gitlab-ci.yml         | 44 ++++----------------------
 README.md              | 72 ++++++++++++++++++++++++++++++++++--------
 config/config-dev.json | 29 -----------------
 config/config-rec.json | 29 -----------------
 docker-compose.yml     |  5 ++-
 5 files changed, 67 insertions(+), 112 deletions(-)
 delete mode 100644 config/config-dev.json
 delete mode 100644 config/config-rec.json

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index ed5ed7f..f69b2de 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,7 +1,6 @@
 stages:
   - sonar-analysis
   - build
-  - deploy
 
 variables:
   SONAR_URL: https://sonarqube.forge.grandlyon.com
@@ -9,7 +8,7 @@ variables:
 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`
@@ -31,12 +30,14 @@ build_development:
   only:
     - development
   script:
-    - export TAG=dev
-    - export APP_PORT=8090
+    - export TAG=$CI_COMMIT_SHORT_SHA
+    - echo ${TAG}
+    - export ADMIN_GUI_BIND_PORT=8090
     - export CONFIG_FILE_PATH=./config/config.json
     - docker-compose build --build-arg conf=prod admin-gui
     - 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/320/trigger/pipeline"
 
 build_release:
   stage: build
@@ -46,40 +47,9 @@ build_release:
     - tags
   script:
     - export TAG=$(echo $CI_COMMIT_TAG | sed 's/v//g')
-    - export APP_PORT=8090
+    - echo ${TAG}
+    - export ADMIN_GUI_BIND_PORT=8090
     - export CONFIG_FILE_PATH=./config/config.json
     - docker-compose build --build-arg conf=prod admin-gui
     - 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 APP_PORT=8090
-    - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
-    - docker-compose pull
-    - export CONFIG_FILE_PATH=./config/config-dev.json
-    - docker-compose --project-name admin-gui-${TAG} up -d --force-recreate
-  environment:
-    name: development
-
-deploy_staging:
-  stage: deploy
-  only:
-    - development
-  when: manual
-  script:
-    - export TAG=staging
-    - export APP_PORT=8190
-    - 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/custom-apps/admin-gui
-    - docker tag $CI_REGISTRY/$REGISTRY_PATH:dev $CI_REGISTRY/$REGISTRY_PATH:${TAG}
-    - docker push $CI_REGISTRY/$REGISTRY_PATH:${TAG}
-    - export CONFIG_FILE_PATH=./config/config-rec.json
-    - docker-compose --project-name admin-gui-${TAG} up -d --force-recreate
-  environment:
-    name: staging
diff --git a/README.md b/README.md
index 4380d9c..192c1ef 100644
--- a/README.md
+++ b/README.md
@@ -1,27 +1,71 @@
-# AdminGui
+# Admin GUI
 
-This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 6.0.8.
+## Installation and usage
 
-## Development server
+The interface has been developed with the Angular framework, so you need to have Node.js installed on your machine in order to run the web application.
+Once you have Node.js installed you need to install the Angular CLI. Open a command line and run:
 
-Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files.
+```bash
+npm install -g @angular/cli
+```
 
-## Code scaffolding
+### Configuration
 
-Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`.
+Open the /src/assets/config/config.json file and update the configuration in order to match yours.
 
-## Build
+### Run the web application
 
-Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `--prod` flag for a production build.
+Using the Angular CLI:
 
-## Running unit tests
+```bash
+ng serve
+```
 
-Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).
+Using the npm script (which use the Angular CLI):
 
-## Running end-to-end tests
+```bash
+npm run start
+```
 
-Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/).
+### Build the application
 
-## Further help
+We defined in the package.json two scripts that can build the application. One that generates an optimized build and the other an unoptimized build. The optimized build takes longer than the normal one.
+Those two scripts contain an option --max_old_space_size=\<nb of max RAM octets the node process can take\>. Make sure the number does not exceed your RAM capacity (you can simply remove the option, it will use the default value: 512mb on 32-bit systems and 1gb on 64-bit systems). By incrising the node process memory limit we decrease the build time.
 
-To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md).
+For development environment (not optimized)
+
+```bash
+npm run build:dev
+```
+
+For production environment (optimized)
+
+```bash
+npm run build:prod
+```
+
+### Build and deploy with Docker
+
+The related files are:
+
+* docker-compose.yml which indicates what Dockerfile should be used, what image is going to be build, volumes, exposed port...
+* Dockerfile which describe the steps to build the docker image.
+
+Some environment variables need to be set before building or running the image. Use the appropriate command to set those variables: SET on Windows, export on Linux.
+
+```bash
+export TAG=<version>
+export ADMIN_GUI_BIND_PORT=<port the application should be running on>
+```
+
+Then to build the image run:
+
+```bash
+docker-compose build --build-arg conf=prod admin-gui #you can change prod to dev if you don't want an optimized build
+```
+
+Once the image is built on your machine, run the following command to start a container:
+
+```bash
+docker-compose --project-name admin-gui up
+```
diff --git a/config/config-dev.json b/config/config-dev.json
deleted file mode 100644
index 877d18c..0000000
--- a/config/config-dev.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
-  "organizations": {
-    "url": "https://data-reloaded-dev.alpha.grandlyon.com/api/organizations/organizations/"
-  },
-  "resources": {
-    "url": "https://data-reloaded-dev.alpha.grandlyon.com/api/resources/"
-  },
-  "mediaLibrary": {
-    "url": "https://data-reloaded-dev.alpha.grandlyon.com/api/media-library/"
-  },
-  "authentication": {
-    "url": "https://data-reloaded-dev.alpha.grandlyon.com/api/authentication/"
-  },
-  "middlewareLegacyAuth": {
-    "url": "https://data-reloaded-dev.alpha.grandlyon.com/api/middleware-legacy/"
-  },
-  "changelog": {
-    "url": "https://data-reloaded-dev.alpha.grandlyon.com/api/changelog/"
-  },
-  "credits": {
-    "url": "https://data-reloaded-dev.alpha.grandlyon.com/api/credits/credits/"
-  },
-  "restHeartAggregations": {
-    "url": "https://data-reloaded-dev.alpha.grandlyon.com/api/indexer-logs/indexerdb/"
-  },
-  "reuses": {
-    "url": "https://data-reloaded-dev.alpha.grandlyon.com/api/reuses/"
-  }
-}
diff --git a/config/config-rec.json b/config/config-rec.json
deleted file mode 100644
index f415761..0000000
--- a/config/config-rec.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
-  "organizations": {
-    "url": "https://data-reloaded-rec.alpha.grandlyon.com/api/organizations/organizations/"
-  },
-  "resources": {
-    "url": "https://data-reloaded-rec.alpha.grandlyon.com/api/resources/"
-  },
-  "mediaLibrary": {
-    "url": "https://data-reloaded-rec.alpha.grandlyon.com/api/media-library/"
-  },
-  "authentication": {
-    "url": "https://data-reloaded-rec.alpha.grandlyon.com/api/authentication/"
-  },
-  "middlewareLegacyAuth": {
-    "url": "https://data-reloaded-rec.alpha.grandlyon.com/api/middleware-legacy/"
-  },
-  "changelog": {
-    "url": "https://data-reloaded-rec.alpha.grandlyon.com/api/changelog/"
-  },
-  "credits": {
-    "url": "https://data-reloaded-rec.alpha.grandlyon.com/api/credits/credits/"
-  },
-  "reuses": {
-    "url": "https://data-reloaded-rec.alpha.grandlyon.com/api/reuses/"
-  },
-  "restHeartAggregations": {
-    "url": "https://data-reloaded-rec.alpha.grandlyon.com/api/indexer-logs/indexerdb/"
-  }
-}
\ No newline at end of file
diff --git a/docker-compose.yml b/docker-compose.yml
index ed0e9f5..f153378 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -5,9 +5,8 @@ services:
     build: .
     image: registry.forge.grandlyon.com/web-et-numerique/web-et-numerique-internet/data.grandlyon.com/web-portal/components/custom-apps/admin-gui:${TAG}
     volumes: 
-      - ${PWD}/nginx.conf.template:/etc/nginx/sites-enabled/default:ro
-      - ${CONFIG_FILE_PATH}:/usr/share/nginx/html/admin/assets/config/config.json:ro
+      - ./nginx.conf.template:/etc/nginx/sites-enabled/default:ro
     ports: 
-      - ${APP_PORT}:8080
+      - ${ADMIN_GUI_BIND_PORT}:8080
     restart: unless-stopped 
   
-- 
GitLab