diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 64cbc557844bfdc8ce3716a56605bc9d3261fee4..81a736c5edf625f0f5394bacb39ca9cf89141037 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -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 &&" diff --git a/README.md b/README.md index 18b65f4ebaad091c75a86366f685da62f73f6ab6..6d5ff6f9b6c18e599b7bb6250c55e0b2e9a653bc 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,19 @@ # 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 diff --git a/deploy/setup.md b/deploy/setup.md index 83e52875fd646ee93020be46854ae5aa386e0977..98bd0a670bd9be37bb8f404382b3aa5e19c1eed7 100644 --- a/deploy/setup.md +++ b/deploy/setup.md @@ -1,11 +1,12 @@ # 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