Workflow de Correction

Comprendre comment fonctionne la correction automatique

Menu

Thème

Basculer entre le mode clair et sombre

Langue

Choisissez votre langue préférée

Taille du texte

Ajustez la taille du texte pour une meilleure lisibilité

Largeur du contenu

Choisissez la largeur optimale pour votre écran

Table des matières

Affiche ou masque la table des matières

Actions

Plus d'options à venir...

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 ! 🚀

Autres pages