Skip to content

Commit 04699e7

Browse files
committed
changement du workflow et ajout d'un readme pour le workflow
1 parent a6784a0 commit 04699e7

2 files changed

Lines changed: 92 additions & 21 deletions

File tree

.github/workflows/nouvelle-version.yml

Lines changed: 24 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -24,27 +24,30 @@ jobs:
2424
2525
cd /data/supercoop
2626
27-
# Nettoyage
28-
rm -f /tmp/webapp-backend.sock
27+
# Sauvegarder le .env existant
28+
if [ -f webapp-backend/.env ]; then
29+
cp webapp-backend/.env /tmp/webapp-backend.env
30+
fi
2931
30-
# Cloner la nouvelle version
31-
git clone "https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.git"
32+
# Supprimer l'ancien dossier
33+
rm -rf webapp-backend
34+
35+
# Cloner la nouvelle version dans le dossier webapp-backend
36+
git clone "https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.git" webapp-backend
3237
cd webapp-backend
3338
git checkout ${{ github.ref }}
3439
35-
# Copier le .env
36-
cp /data/supercoop/webapp-backend/.env .env
40+
# Restaurer le .env
41+
if [ -f /tmp/webapp-backend.env ]; then
42+
mv /tmp/webapp-backend.env .env
43+
fi
3744
38-
# Créer l'env et installer les dépendances
39-
virtualenv ../env
40-
../env/bin/pip install -r requirements.txt
45+
# Créer l'environnement virtuel et installer les dépendances
46+
virtualenv env
47+
env/bin/pip install -r requirements.txt
4148
4249
# Appliquer les migrations
43-
../env/bin/flask db upgrade
44-
45-
# Créer le dossier de logs si manquant
46-
mkdir -p /data/supercoop/webapp-backend/logs
47-
chown webapp-backend:webapp-backend /data/supercoop/webapp-backend/logs
50+
env/bin/flask db upgrade
4851
4952
# Relancer Supervisor
5053
sudo supervisorctl reread
@@ -56,14 +59,14 @@ jobs:
5659
- name: Notify IT
5760
uses: hilarion5/send-mail@v1
5861
with:
59-
smtp-server: ${{vars.SMTP_HOST}}
60-
smtp-port: ${{vars.SMTP_PORT}}
62+
smtp-server: ${{ vars.SMTP_HOST }}
63+
smtp-port: ${{ vars.SMTP_PORT }}
6164
smtp-secure: false
62-
username: ${{vars.MAIL_ACCOUNT}}
63-
password: ${{secrets.MAIL_PASSWORD}}
64-
from-email: ${{vars.MAIL_FROM_ADDRESS}}
65-
to-email: ${{vars.MAIL_TO_ADDRESS}}
65+
username: ${{ vars.MAIL_ACCOUNT }}
66+
password: ${{ secrets.MAIL_PASSWORD }}
67+
from-email: ${{ vars.MAIL_FROM_ADDRESS }}
68+
to-email: ${{ vars.MAIL_TO_ADDRESS }}
6669
subject: Version ${{ github.ref_name }} de la webapp backend mobile
6770
body: Tout est dans le titre
6871

69-
- run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event."
72+
- run: echo "🎉 The job was automatiquement déclenché par un événement ${{ github.event_name }}."

.github/workflows/readme.md

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# Déploiement de la Webapp Backend
2+
3+
Ce guide décrit les étapes automatiques réalisées lors d'un déploiement via GitHub Actions sur le serveur `/data/supercoop`.
4+
5+
---
6+
7+
## 1. Déclenchement
8+
9+
- Le workflow se déclenche automatiquement lors de la **publication d'une release** sur GitHub.
10+
- Le nom de la version et l'auteur sont affichés dans le run-name.
11+
12+
---
13+
14+
## 2. Étapes du déploiement
15+
16+
1. **Arrêt du process Supervisor**
17+
- Le processus `webapp-backend` est arrêté avec :
18+
```bash
19+
sudo supervisorctl stop webapp-backend
20+
```
21+
22+
2. **Sauvegarde du `.env` existant**
23+
- Si le fichier `.env` existe, il est temporairement déplacé dans `/tmp/webapp-backend.env`.
24+
25+
3. **Suppression de l'ancien dossier**
26+
- L'ancien dossier `webapp-backend` est supprimé pour laisser place à la nouvelle version.
27+
28+
4. **Clonage du nouveau code**
29+
- Le repo est cloné avec le token GitHub dans `/data/supercoop/webapp-backend`.
30+
- La branche/release correspondante est checkoutée.
31+
32+
5. **Restauration du `.env`**
33+
- Le fichier `.env` sauvegardé est replacé dans le nouveau dossier cloné.
34+
35+
6. **Création de l'environnement virtuel et installation des dépendances**
36+
- Un virtualenv nommé `env` est créé dans `webapp-backend`.
37+
- Les dépendances sont installées via :
38+
```bash
39+
env/bin/pip install -r requirements.txt
40+
```
41+
42+
7. **Application des migrations**
43+
- Les migrations de la base de données sont appliquées avec Flask :
44+
```bash
45+
env/bin/flask db upgrade
46+
```
47+
48+
8. **Redémarrage du process Supervisor**
49+
- Le service Supervisor est rechargé et le backend est démarré :
50+
```bash
51+
sudo supervisorctl reread
52+
sudo supervisorctl update
53+
sudo supervisorctl start webapp-backend
54+
```
55+
56+
---
57+
58+
## 3. Notification
59+
60+
- Une notification email est envoyée automatiquement pour informer l'équipe IT du déploiement réussi.
61+
62+
---
63+
64+
## 4. Notes importantes
65+
66+
- Le `.env` doit toujours rester en dehors du repo Git pour ne pas exposer les secrets.
67+
- Le virtualenv est nommé `env` et se trouve dans le dossier cloné.
68+
- Les logs de l’application sont stockés dans `webapp-backend/logs`.

0 commit comments

Comments
 (0)