Situation Pro : Mise en place de l'environnement documentaire

1. Contexte et Objectifs

Dans le cadre de mon entrée en BTS SIO, j'ai dû mettre en place un outil de suivi de mes compétences. L'objectif était de disposer d'un système pérenne, versionné et accessible en ligne pour documenter mes travaux durant 2 ans.

2. Besoins identifiés

  • Pouvoir rédiger rapidement (Langage léger).
  • Conserver un historique des modifications (Versioning).
  • Publier automatiquement un site web professionnel (CI/CD).
  • Collaborer et recevoir des retours (Ticketing/Issues).

Voici une proposition pour enrichir la partie 3 avec les justifications attendues. Cette section est cruciale pour l'examen du BTS SIO car elle démontre votre capacité à analyser et argumenter vos choix technologiques.


3. Solution technique retenue et justifications

J'ai mis en place une chaîne "DevOps" composée des outils suivants, choisis pour leur pertinence technique et leur complémentarité :

  • VSCode (Éditeur de texte) :
    • Justification : C'est l'IDE de référence dans le secteur informatique. Sa légèreté et ses nombreuses extensions (Markdown All in One, Git Graph) permettent d'écrire, de visualiser et de versionner le code dans une interface unique.
  • Markdown (Langage de balisage) :
    • Justification : Contrairement à un traitement de texte classique (Word), le Markdown sépare le fond de la forme. C'est un langage universel, lisible en texte brut, qui garantit la pérennité de la documentation et sa portabilité.
  • MkDocs (Générateur de site statique) :
    • Justification : MkDocs est spécifiquement conçu pour la documentation technique. Il est plus rapide et plus sécurisé qu'un CMS (comme WordPress) car il génère des pages HTML statiques sans base de données, ce qui facilite l'hébergement et la maintenance.
    • Thème ReadTheDocs : Choisi pour son aspect professionnel et sa navigation latérale claire, adaptée à un portfolio de compétences.
  • Git (Gestion de versions) :
    • Justification : Indispensable pour garder un historique complet des modifications. Il permet de revenir en arrière en cas d'erreur et de travailler par branches, ce qui correspond aux bonnes pratiques professionnelles de développement.
  • GitLab (Forge logicielle) :
    • Justification : Contrairement à une simple clé USB ou un service cloud (Drive), GitLab centralise le code, gère les tickets (Issues) pour le suivi des tâches et propose un moteur de CI/CD (Continuous Integration/Continuous Deployment) intégré nativement.
  • GitLab Pages & CI/CD (Automatisation et Déploiement) :
    • Justification : Permet l'hébergement gratuit du site.
    • Intérêt du CI/CD : L'automatisation via le pipeline (.gitlab-ci.yml) est un gain de temps et de fiabilité majeur. Le déploiement continu élimine toute manipulation manuelle fastidieuse (comme l'exportation HTML ou le transfert via FTP). Dès que je pousse une modification (git push), le serveur compile automatiquement les sources et met à jour le site web en quelques secondes. Cela garantit que la version en ligne est toujours le reflet exact de mon dernier travail, sans risque d'erreur humaine.

Pourquoi ce choix global ?

Le choix de cette "chaîne d'outils" (Toolchain) répond à une volonté de professionnalisation. Plutôt que d'utiliser des outils de bureautique classiques, j'utilise les mêmes méthodes que les équipes de développement modernes (Documentation as Code), ce qui me permet de monter en compétence sur des outils que je retrouverai en entreprise.

4. Réalisation (Ce que j'ai fait)

  1. Installation et configuration de l'IDE VSCode avec les extensions nécessaires.
  2. Apprentissage de la syntaxe Markdown.
  3. Initialisation d'un dépôt Git local et liaison avec un projet distant sur GitLab.
  4. Configuration du fichier mkdocs.yml pour structurer la navigation.
  5. Mise en place d'un pipeline CI/CD (fichier .gitlab-ci.yml) pour le déploiement automatique vers GitLab Pages.
  6. Testé la mobilité

5. Preuves de réalisation finale

mkdocs.yml:

site_name: Mon Portfolio

theme:
  name: readthedocs    
  highlightjs: true

plugins:
  - search  # Plugin de recherche intégré
  - mkdocs-nav-weight # Plugin pour une meilleure gestion des pages

nav:
  - Accueil: index.md
  - Mon Profil: 
    - Présentation: 01_Profil/index.md
  - Support et Mise à Disposition de Services Informatiques:
    - Présentation: 02_Support/index.md
    - Mise en place environnement:  02_Support/mise-en-place-doc.md
  - Spécialité SISR: 
    - Présentation: 03_SISR/index.md
  - Spécialité SLAM: 
    - Présentation: 04_SLAM/index.md
  - Veille Technologique: 
    - Présentation: 05_Veille/index.md
  - Synthèse: 
    - Tableau de synthèse: 06_Synthese/Tableau-de-synthèse.md

.gitlab-ci.yml:

image: python:latest  # On utilise une image avec Python, nécessaire pour MkDocs

pages:
  stage: deploy
  script:
    - pip install mkdocs
    - pip install mkdocs-nav-weight
    - mkdocs build --verbose --site-dir public  # Construit le site dans le dossier "public"
  artifacts:
    paths:
      - public
  only:
    - main  # ou master, selon votre branche
    - master

Commits:
Commits

Mon Portfolio en ligne:
Capture de mon site

Preuve de la mise en œuvre du workflow Git en mode nomade:
Capture mode nomade