Travail pratique
ID : A07-TP05.2
But du TP
- Prendre en main l'IDE IntelliJ IDEA
- Se familiariser avec l'utilisation du système de gestion de versions Git et la plateforme de gestion de projets GitLab
- Réaliser collaborativement un site web avec MkDocs et Git
- Déployer un site web supplémentaire sur nginx (Linux) en production
Travail à réaliser
Prettier
- Installez et configurez Prettier dans IntelliJ IDEA.
- Configurez Prettier dans IntelliJ IDEA, pour formater les fichiers Markdown (
.md).
- Configurez Prettier dans IntelliJ IDEA, pour formater les fichiers Markdown (
MkDocs
-
Formez des groupes de 2 personnes, puis choisissez un des thèmes suivants (un thème par groupe) :
- Topic A :
mainetdiv - Topic B :
articleetsection - Topic C :
headeretfooter - Topic D :
navetaside
- Topic A :
-
Dans le projet GitLab du TP, avec IntelliJ IDEA :
- Une des personnes du groupe crée une branche
feature/topic-x(remplacezxpar la lettre de votre thème) depuis la branchedevelop. - La même personne crée un fichier
topic-x.md(remplacezxpar la lettre de votre thème) dans le dossierdocs. - Elle effectue un
commitdu fichier (vide) avec un message decommitclair, puispushla branchefeature/topic-xsurorigin. - L'autre membre du groupe doit ensuite faire un
fetchet uncheckoutde la branche pour synchroniser son environnement.
- Une des personnes du groupe crée une branche
-
Rédaction du contenu pour les balises HTML :
Le but de l'exercice est que chaque personne rédige ces contenus individuellement de son côté et les mette à disposition de l'autre membre du groupe avec des
pushde la branchefeature/topic-xsurorigin.- Dans la page de votre thème, faites un chapitre principal, puis un sous-chapitre par balise.
- Chaque membre du groupe rédige, dans le sous-chapitre de sa balise, 3 sous-chapitres pour présenter celle-ci : Description, Utilisation et Compatibilité.
- Vous pouvez utiliser les documentations en ligne pour vous aider à rédiger le contenu des divers chapitres, tel que MDN Web Docs - HTML
- Pour la compatibilité, utilisez et affichez le tableau sur le site de Mozilla (ci-dessus) sous forme d'image.
- Il doit y avoir au moins un
commitpar chapitre. - Une fois les contenus terminés par chaque membre du groupe, les deux versions du fichier doivent être "consolidées" en utilisant Git pour n'en faire qu'une.
-
Exemples d'utilisation :
- Chaque membre du groupe ajoute un sous-chapitre Exemples entre les sous-chapitres Utilisation et Compatibilité de la balise de l'autre membre du groupe et ajoute un exemple d'utilisation de celle-ci.
- Utilisez l'extension Highlight pour avoir la coloration syntaxique dans les blocs de code.
- Chaque membre du groupe ajoute un deuxième exemple d'utilisation dans le chapitre Exemples de sa balise.
- Il doit y avoir au moins un
commitpar exemple. - Une fois les contenus terminés par chaque membre du groupe, les deux versions du fichier doivent être "consolidées" en utilisant Git pour n'en faire qu'une.
Workflow Git
Utilisez le workflow Git Gitflow Workflow pour gérer les versions de votre code source et le partager entre vous.
- Respecter l'ensemble des règles, vues en cours, relatives aux messages de commit, aux conventions de nommage des branches et à la numérotation des versions.
Pour le workflow :
- Créez une branche
featurepar thème (ex.feature/topic-a). - Faites un "merge commit" (merge no-fast-forward) de votre branche
featuredans la branchedevelopune fois la rédaction du thème complètement terminée. - Ajoutez votre thème dans la table des matières de la page principale du site MkDocs
index.md(dans l'ordre alphabétique A-D).- L'entrée dans la table des matières est cliquable et permet d'accéder à la page de votre thème.
- Faites un
commitde cette modification dans la branchedevelopaprès lemergede la branchefeature.
- Créez une branche
releaseavec le bon numéro de version.- Chaque ajout d'une nouvelle feature (thème) incrémente la version mineure du projet : 0.X.0 (ex.
release-0.4.0).
- Chaque ajout d'une nouvelle feature (thème) incrémente la version mineure du projet : 0.X.0 (ex.
- Dans la branche
release, mettez à jour le fichierCHANGELOG.md. - Pour terminer, faites un "merge commit" (merge no-fast-forward) de la branche
releasedans les branchesmainpuisdevelop(dans cet ordre). - A la fin du travail pratique, seules les branches
mainetdevelopdoivent exister surorigin(plus de branchesfeatureourelease).
🚨 Pas de merge dans ou depuis les branches origin, uniquement dans les branches locales !
- Si votre
pushne passe pas surorigin, faites unfetchet résolvez les conflits (éventuellement faites unrebase). - Evitez de faire un
pullafin de ne pas générer demergeinutile. - Utilisez "interactive rebase" pour repositionner, modifier, arranger vos
commitsdans votre branchefeature, si besoin. - Utilisez les branches
hotfixpour corriger les erreurs ou les oublis dans le code fusionné dans la branchemain.
Mise en production
- Résolvez les problèmes ou erreurs résiduelles du TP04 (votre VPS doit être configuré correctement).
- Déployez la dernière version du site MkDocs (le site web produit avec la commande
build) sur votre serveur de production (VPS) avec l'URLhttps://tp05.apiXX.isc.heia-fr.ch(remplacezXXpar le numéro de votre serveur personnel).- La page d'accueil de nginx doit bien évidemment rester accessible avec l'URL
https://apiXX.isc.heia-fr.ch. - Par "dernière version du site MkDocs", on entend la version finale du code avec les thèmes de tous les groupes.
- La page d'accueil de nginx doit bien évidemment rester accessible avec l'URL
Rendu du TP
Aucun rapport, manuel ou documentation n'est demandé pour ce travail pratique.
Le dernier commit sur Git doit être fait au plus tard le dimanche 2 novembre à 23h59.
La dernière version du site MkDocs doit avoir été mise en ligne sur votre VPS au plus tard le lundi 3 novembre à 8h15.
Le TP sera évalué, entre autres, sur les critères suivants :
- Respect de toutes les consignes de ce document
- Utilisation correcte du workflow Git
- Commits respectant les règles vues ensemble
- Mises à jour correctes et pertinentes du changelog
- Numérotation correcte des versions
- Disponibilité de la dernière version du site sur votre VPS
- Uniformité dans la rédaction des thèmes entre les groupes
- VPS correctement configuré (correction des points selon votre grille d'évaluation du TP04)