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