From 54639606f249ff1b67e007b8a0790f8379f5b45d Mon Sep 17 00:00:00 2001
From: Fabien Zucchet <fabien.zucchet@student-cs.fr>
Date: Thu, 30 Apr 2020 21:40:40 +0200
Subject: [PATCH] Add working gitlab-ci.yml

---
 .gitlab-ci.yml |  4 +++-
 README.md      | 31 +++++++++++++++++++++++++++----
 2 files changed, 30 insertions(+), 5 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 639da453..4e8b8661 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -62,12 +62,13 @@ back-preprod-deploy:
     - >
       ssh gitlabci@leaderboard.viarezo.fr
       "cd leaderboard/back &&
+      git stash &&
       git checkout staging &&
       git stash &&
       git pull &&
       npm install --only=prod &&
       pm2 delete back-preprod &&
-      PROD=false pm2 start src/index.js --name back-preprod &&
+      pm2 start src/index.js --name back-preprod &&
       exit"
 
 front-preprod-deploy:
@@ -109,6 +110,7 @@ back-prod-deploy:
     - >
       ssh gitlabci@leaderboard.viarezo.fr
       "cd leaderboard/back &&
+      git stash &&
       git checkout master &&
       git stash &&
       git pull &&
diff --git a/README.md b/README.md
index 7cbba834..181afc96 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,30 @@
-# HumaViRon
+ # HumaViRon
 
+ ## Description du projet
 
-##Description du projet
-Ce projet est un leaderboard pour des événements de type Humaviron. Le front utilise React et Bootstrap et le back nodeJS. La base de donnée utilise mysql.
+Ce projet est un projet de web app leaderboard pour l'Humaviron. Il possède une partie accessible sans connexion : accueil, accès aux classements, objectifs, page partenaires, ...
+La partie administration est accessible via l'authentification avec l'[auth ViaRézo](https://auth.viarezo.fr).
 
-### Suite à venir...
+ ## Technologies utilisées
+
+  - **Front** : Le front utilise la librairie JavaScript React. Le routage est géré par React-routeur. Il communique au back grâces à des appels à l'api et axios.
+  - **Back** : Le back est en nodejs et utilise Express.
+  - **Base de données** : Le back communique avec une base de données mysql.
+
+
+ ## Mise en production
+
+ - **Base de données** : mysql est installé directement sur la machine et disponible sur le port 3306 (port par défaut). Les bases de données de production et de pré-production sont nommées respectivement `leaderboard` et `leaderboard_preprod`. Les users des bases de données sont respectivement `leaderboard` et `leaderboard_preprod`. Les mots de passes sont définis dans les variables de la CI gitlab.
+
+ - **Back** : le back est lancé avec pm2 sous le nom `back-prod` (ou `back-preprod`) pour le back de preprod. Le back de production écoute sur le port 8000 et le back de pré-production sur le port 5000.
+
+ - **Front** : le front est compilé et servi de manière statique par nginx qui est configuré de manière à servir les 2 versions du site (`leaderboard.viarezo.fr` et `leaderboard-test.viarezo.fr`) et gérer le proxy du `/api` vers les backs respectifs.
+
+
+ ## Déploiement avec CI/CD
+
+Une pipeline est configurée sur le projet gitlab, les actions effectuées sont les suivantes:
+
+ - Dans le cas d'une branche quelconque : linter du back et du front.
+ - Dans le cas de la branche staging : linter et déploiement du site en version `preprod` [leaderboard-test.viarezo.fr](https://leaderboard-test.viarezo.fr).
+ - Dans le cas de la branche master : linter et déploiement du site en version `prod` [leaderboard.viarezo.fr](https://leaderboard.viarezo.fr).
-- 
GitLab