feat: add slide generation script for CESIZen project, covering deployment and security aspects

This commit is contained in:
Azmog
2026-07-09 16:41:44 +02:00
parent 37a1079201
commit 867d744242
14 changed files with 1648 additions and 0 deletions
+56
View File
@@ -0,0 +1,56 @@
name: "✨ Demande d'évolution"
about: "Proposer une nouvelle fonctionnalité ou une amélioration (maintenance évolutive)"
title: "[ÉVOLUTION] "
labels:
- "type/évolution"
body:
- type: markdown
attributes:
value: |
Toute demande d'évolution fait l'objet d'une analyse par le prestataire
(documentation, délai de mise en œuvre, coût associé) avant planification.
- type: dropdown
id: module
attributes:
label: Module concerné
options:
- "Comptes utilisateurs"
- "Informations"
- "Tracker d'émotions"
- "Administration"
- "Nouveau module (Diagnostic, Cohérence cardiaque, Activités de détente)"
- "Transverse (sécurité, RGPD, performance)"
validations:
required: true
- type: textarea
id: besoin
attributes:
label: Besoin / problème à résoudre
description: "En tant que … je souhaite … afin de …"
validations:
required: true
- type: textarea
id: solution
attributes:
label: Solution proposée
validations:
required: false
- type: dropdown
id: priorite
attributes:
label: Priorité souhaitée
options:
- "Haute"
- "Moyenne"
- "Basse"
validations:
required: true
- type: textarea
id: criteres
attributes:
label: Critères d'acceptation
value: |
- [ ]
- [ ]
validations:
required: false
+74
View File
@@ -0,0 +1,74 @@
name: "🐞 Signalement d'incident / anomalie"
about: "Déclarer un dysfonctionnement de l'application (maintenance corrective)"
title: "[INCIDENT] "
labels:
- "type/incident"
body:
- type: markdown
attributes:
value: |
Merci de renseigner ce formulaire le plus précisément possible.
Le délai de prise en compte dépend de la **sévérité** déclarée (voir SLA du contrat).
- type: dropdown
id: severite
attributes:
label: Sévérité
description: "Bloquant = service inutilisable · Majeur = service dégradé avec contournement · Mineur = altération mineure"
options:
- "Bloquant — priorité critique (prise en compte 1 h / correction 3 h)"
- "Bloquant — priorité forte (prise en compte 2 h / correction 6 h)"
- "Majeur (prise en compte 7 h / correction 16 h)"
- "Mineur (prise en compte 1 j / correction 40 h)"
validations:
required: true
- type: dropdown
id: module
attributes:
label: Module concerné
options:
- "Comptes utilisateurs / Authentification"
- "Informations (contenus)"
- "Tracker d'émotions"
- "Administration"
- "Infrastructure / Déploiement"
- "Autre"
validations:
required: true
- type: input
id: environnement
attributes:
label: Environnement
placeholder: "Production (cesizen.cleanows.fr) · web ou mobile · navigateur/OS + version"
validations:
required: true
- type: textarea
id: description
attributes:
label: Description du problème
description: "Ce qui ne fonctionne pas."
validations:
required: true
- type: textarea
id: reproduction
attributes:
label: Étapes de reproduction
value: |
1.
2.
3.
validations:
required: true
- type: textarea
id: attendu
attributes:
label: Résultat attendu vs. obtenu
placeholder: "Attendu : … / Obtenu : …"
validations:
required: true
- type: textarea
id: contexte
attributes:
label: Captures d'écran / logs
description: "Capture, message d'erreur, extrait de journal (sans donnée personnelle)."
validations:
required: false
+25
View File
@@ -0,0 +1,25 @@
<!-- Modèle de Pull Request CESIZen — la CI (Gitea Actions) doit être verte avant merge. -->
## Objet
<!-- Décrire brièvement le changement. -->
## Ticket lié
<!-- Ex. : Closes #12 -->
Closes #
## Type de changement
- [ ] 🐞 Correctif (maintenance corrective)
- [ ] ✨ Évolution (maintenance évolutive)
- [ ] ♻️ Refactorisation / dette technique
- [ ] 🔒 Sécurité
- [ ] 📖 Documentation
## Vérifications
- [ ] Les tests automatisés passent en local (`php artisan test`, `npm test`)
- [ ] Le style de code est respecté (`vendor/bin/pint`, `npm run lint`)
- [ ] La CI Gitea Actions est verte
- [ ] Pas de secret ni de donnée personnelle commitée
- [ ] Documentation mise à jour si nécessaire
## Impact sécurité / données personnelles
<!-- Le changement touche-t-il à l'authentification, aux données de santé, au RGPD ? -->
+85
View File
@@ -0,0 +1,85 @@
# ─────────────────────────────────────────────────────────────────────────
# Intégration continue CESIZen — Gitea Actions
# Déclenchée à chaque push et pull request. Lance les 29 tests automatisés
# (backend PHPUnit + frontend Vitest + mobile Jest) et le lint.
# Un déploiement Coolify est déclenché par webhook après un merge sur main
# (voir docker-compose.prod.yaml + MIGRATION_GITEA.md).
# ─────────────────────────────────────────────────────────────────────────
name: CI
on:
push:
branches: [main, develop]
pull_request:
branches: [main, develop]
jobs:
# ── Backend Laravel : PHPUnit sur base SQLite en mémoire (cf. backend/phpunit.xml) ──
backend:
name: Backend · PHPUnit + Pint
runs-on: ubuntu-latest
defaults:
run:
working-directory: backend
steps:
- uses: actions/checkout@v4
- name: Installer PHP 8.4
uses: shivammathur/setup-php@v2
with:
php-version: "8.4"
extensions: pdo, pdo_sqlite, bcmath, mbstring
coverage: none
- name: Cache des dépendances Composer
uses: actions/cache@v4
with:
path: backend/vendor
key: composer-${{ hashFiles('backend/composer.lock') }}
- name: Installer les dépendances
run: composer install --no-interaction --prefer-dist --no-progress
- name: Vérifier le style (Laravel Pint, PSR-12)
run: vendor/bin/pint --test
- name: Lancer les tests (Unit + Feature)
run: php artisan test
# ── Frontend web Next.js : ESLint + Vitest ──
frontend:
name: Frontend · ESLint + Vitest
runs-on: ubuntu-latest
defaults:
run:
working-directory: frontend
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "20"
cache: npm
cache-dependency-path: frontend/package-lock.json
- run: npm ci
- name: Lint
run: npm run lint
- name: Tests unitaires
run: npm test
# ── Mobile Expo / React Native : Jest ──
mobile:
name: Mobile · Jest
runs-on: ubuntu-latest
defaults:
run:
working-directory: mobile
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "20"
cache: npm
cache-dependency-path: mobile/package-lock.json
- run: npm ci
- name: Tests unitaires
run: npm test