Workflow de Correction Automatique
Ce guide explique en détail le processus de correction automatique de vos projets Docker.
📊 Vue d'Ensemble
🔄 Aperçu du système de correction
Le système de correction automatique utilise **Gitea Actions** pour évaluer vos projets dès que vous faites un `git push`.graph LR
A[Git Push] --> B[Gitea Actions]
B --> C[Clone Repo]
C --> D[Correction API]
D --> E[Tests Workshop]
E --> F[Calculate Grade]
F --> G[Send Email]
🔄 Étapes du Workflow
⚡ 1. Déclenchement Automatique
Le workflow se déclenche automatiquement sur chaque push vers la branche `main` ou `master`. Le système : 1. Détecte le push sur Gitea 2. Clone votre repository 3. Envoie le code à l'API de correction 4. Exécute les tests spécifiques au workshop✅ 2. Tests par Workshop
### Workshop 1 : Docker Setup - ✅ Fichier `docker.txt` existe - ✅ Contient la sortie de `docker info` - ✅ Version Docker détectée ### Workshop 2 : Simple Web Server (Nginx) - ✅ Dockerfile existe (insensible à la casse) - ✅ Dockerfile utilise nginx comme image de base - ✅ Dockerfile copie index.html vers /usr/share/nginx/html - ✅ index.html existe - ✅ build.sh existe - ✅ run.sh existe avec les bons paramètres ### Workshop 3 : Docker Registry - ✅ docker-compose.yml existe - ✅ Section volumes définie - ✅ Section networks définie - ✅ Dockerfile existe - ✅ README.md existe ### Workshops 4-8 Chaque workshop a ses propres critères. Consultez le sujet pour les détails.🧮 3. Calcul de la Note
Note = (Tests réussis / Total tests) × 100
Exemple Workshop 2 :
- 6 tests au total
- 4 tests réussis
- Note = (4/6) × 100 = 66.67%
📧 4. Envoi du Rapport
Après la correction, vous recevez un email contenant : - 📊 **Votre note** sur 100 - ✅ **Tests réussis** : liste détaillée - ❌ **Tests échoués** : avec explications - 📝 **Logs complets** de la correction🔢 Nombre de Tentatives
📋 Gestion des tentatives
Par défaut, vous avez **3 tentatives par workshop**. - Chaque `git push` consomme une tentative - La **meilleure note** est conservée - Votre enseignant peut ajouter des tentatives si nécessaire ### Voir vos tentatives restantes Connectez-vous sur https://grades.zohrabi.cloud pour voir : - Nombre de tentatives utilisées - Nombre de tentatives restantes - Historique de vos soumissions📈 Barème par Workshop
📊 Workshop 1 : Docker Setup (3 tests)
| Test | Description | |------|-------------| | docker.txt existe | Le fichier docker.txt est présent | | Contenu valide | Contient la sortie de docker info | | Version Docker | Version Docker détectée dans le fichier |📊 Workshop 2 : Simple Web Server (6 tests)
| Test | Description | |------|-------------| | Dockerfile existe | Dockerfile présent (casse insensible) | | Image nginx | FROM nginx dans le Dockerfile | | COPY index.html | Copie vers /usr/share/nginx/html | | index.html existe | Fichier HTML présent | | build.sh existe | Script de build présent | | run.sh existe | Script de lancement présent |📊 Workshop 3-8
Les critères varient selon le workshop. Consultez les logs de correction pour voir les tests spécifiques.🔍 Comprendre les Logs
📋 Accéder aux Logs
### Via le Dashboard 1. Allez sur https://grades.zohrabi.cloud 2. Connectez-vous avec vos identifiants Gitea 3. Cliquez sur un workshop pour voir les détails 4. Cliquez sur "Logs" pour voir le détail ### Via Gitea 1. Allez sur votre repository 2. Cliquez sur l'onglet **"Actions"** 3. Sélectionnez le workflow terminé 4. Consultez les logs de chaque étape✅ Exemple de logs réussis
=== Workshop2: Simple Web Server with Nginx ===
PASS: Dockerfile exists (Dockerfile)
PASS: Dockerfile uses nginx base image
PASS: Dockerfile copies index.html to nginx html directory
PASS: index.html exists
PASS: build.sh exists
PASS: run.sh exists
=== RESULTS ===
6 passed, 0 failed
❌ Exemple de logs avec erreurs
=== Workshop2: Simple Web Server with Nginx ===
PASS: Dockerfile exists (dockerfile)
PASS: Dockerfile uses nginx base image
FAIL: Dockerfile must COPY index.html to /usr/share/nginx/html
FAIL: index.html not found
FAIL: build.sh not found
FAIL: run.sh not found
=== RESULTS ===
2 passed, 4 failed
🛠️ Débugger les Problèmes
🚫 Tous les tests échouent
**Causes possibles** : - Repository vide ou fichiers non commités - Push vers une mauvaise branche - Erreur dans le nom des fichiers **Solutions** :# Vérifier que les fichiers sont bien ajoutés
git status
# S'assurer d'être sur main
git branch
# Forcer le push
git add .
git commit -m "Ajout des fichiers"
git push origin main
❗ Dockerfile non trouvé
Le système accepte plusieurs variantes de casse : - `Dockerfile` ✅ - `dockerfile` ✅ - `DockerFile` ✅ - `DOCKERFILE` ✅ Vérifiez que le fichier n'a pas d'extension (.txt, etc.)📧 Email non reçu
1. Vérifiez votre dossier spam 2. Attendez quelques minutes (le système peut être chargé) 3. Consultez le dashboard https://grades.zohrabi.cloud directement 4. Contactez votre enseignant si le problème persiste💡 Conseils pour Améliorer sa Note
✅ Avant de Push
1. **Vérifier la structure** : ```bash ls -la # Voir tous les fichiers ``` 2. **Tester localement** (si applicable) : ```bash chmod +x build.sh run.sh # Rendre exécutable ./build.sh ./run.sh ``` 3. **Vérifier le contenu des fichiers** : ```bash cat Dockerfile cat build.sh cat run.sh ``` 4. **S'assurer que tout est commité** : ```bash git status git add . git commit -m "Message descriptif" ```🔄 Après un échec
1. **Lire attentivement les logs** sur le dashboard 2. **Identifier les tests échoués** 3. **Corriger les fichiers manquants ou incorrects** 4. **Repousser** : ```bash git add . git commit -m "Correction: fichiers manquants" git push origin main ```🆘 Support
- 📊 Dashboard : https://grades.zohrabi.cloud
- 📖 Wiki : https://wiki.zohrabi.cloud
- 📧 Contact : Reza@zohrabi.fr
Bonne chance pour vos workshops ! 🚀