Skip to content
Snippets Groups Projects
Commit 7c767624 authored by Florentin Labelle's avatar Florentin Labelle
Browse files

Setup tp3

parent 6ea64d69
No related branches found
No related tags found
No related merge requests found
......@@ -8,10 +8,9 @@ stages:
download_dependencies:
stage: dependencies
before_script:
script:
- python -m venv .venv
- source .venv/bin/activate
script:
- pip install -r requirements.txt
artifacts:
paths:
......@@ -23,10 +22,9 @@ pylint:
- download_dependencies
needs:
- download_dependencies
before_script:
script:
- source .venv/bin/activate
- pip install pylint
script:
- pylint calculator --fail-on=error
pytest:
......@@ -35,19 +33,17 @@ pytest:
- download_dependencies
needs:
- download_dependencies
before_script:
- source .venv/bin/activate
script:
- source .venv/bin/activate
- pytest calculator
# deploy:
# stage: deploy
# needs:
# - pylint
# - pytest
# before_script:
# - apt-get update
# - apt-get install -y openssh-client sshpass
# script:
# - sshpass -p viazero ssh -o StrictHostKeyChecking=no viazero@<ip-de-ma-vm>
# "cd /var/www/cicd && git pull && sudo systemctl restart calculator"
deploy:
stage: deploy
needs:
- pylint
- pytest
script:
- apt-get update
- apt-get install -y openssh-client sshpass
- sshpass -p <mot-de-passe> ssh -o StrictHostKeyChecking=no <nom-d'utilisateur>@<ip-de-ma-vm>
"commandes à lancer sur la VM séparées par des &&"
# CICD 2022
Bienvenue à cette fabuleuse formation.
## TP3: Déploiement continu
Je t'invite à forker le repo et à cloner ton fork sur ta machine.
### Objectifs
## Le sujet du tp
- On va d'abord déployer sur un serveur de test notre site web
- On va ensuite faire une CD qui le fait pour nous
- On va coder une fonctionnalité et elle sera automatiquement déployée sur le serveur de test
Le sujet du tp est de proprifier et tester le code d'une calculatrice en ligne. Une simple page web où on peut entrer une expression mathématique et qui nous donne le résultat.
### Pour déployer un site web, tout se passe dans deploy/setup.md
## Pour commencer les tps
### Pour faire une CD, tout se passe dans le .gitlab-ci.yml
Les branches `tp1`, `tp2`, `tp3` contiennent les fichiers de base pour chaque tp.
La correction sont dans les branches `tp1-correction`, `tp2-correction`.
### Pour coder une fonctionnalité, tout se passe dans calculator.py (À toi de voir ce que tu veux coder)
- tu peux rajouter un opérateur par exemple modulo, division euclidienne, etc...
- ensuite tu commit et push, et la CI va se déclencher et déployer sur le serveur de test
- rend toi sur ton site web et vérifie que tout fonctionne
# Setup la vm pour notre calculatrice
## Clone le repo
## Clone le repo sur la vm distante
```bash
sudo su
mkdir -p /var/www
cd /var/www
git clone https://gitlab.viarezo.fr/<login>/cicd.git
git clone https://gitlab.viarezo.fr/<login>/cicd.git # Et on clone son fork
```
## Installe les dépendances
......@@ -15,15 +16,15 @@ cd cicd
pip install -r requirements.txt
```
## Ajoute le service
## Lancer le site web avec un service
Un service c'est une application qui tourne en tâche de fond sur la machine. On va créer un service pour notre application. Un service est un fichier qui se trouve dans `/etc/systemd/system/` et qui s'appelle `quelquechose.service`. On a déjà crée le fichier pour vous, vous n'avez plus qu'à le copier dans le bon dossier.
Un service c'est une application qui tourne en tâche de fond sur la machine. On va créer un service pour notre application.
Pour configurer un service, on va créer un fichier de configuration dans `/etc/systemd/system/` et qui s'appelle `quelquechose.service`. On a déjà crée le fichier pour vous, vous n'avez plus qu'à le copier dans le bon dossier.
```bash
sudo cp deploy/calculator.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable calculator
sudo systemctl start calculator
cp deploy/calculator.service /etc/systemd/system/
systemctl daemon-reload # On actualise la liste des services
systemctl start calculator # On démarre le service/notre calculatrice
```
## Dans ton navigateur
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment