Formation Git

Partie 2 : Les forges logicielles

2024-05-13
Creative Commons “Attribution-Share Alike” license icon
Benoît Seignovert

Hands on !

✋ 💻 🤚

(1) Comprendre ce qu'est une forge logicielle

(2) Héberger ses codes sources

(3) Collaborer sur un projet

(4) Déployer des applications et des logiciels

Les objectifs de cette session

Une forge logicielle ≠ GIT

git init
git add foo.txt
git commit -m "Inital commit"
git push
git fetch
git pull
...

Outil de gestion de version

Apache Subversion logo image/svg+xmlMaster slide

SVN

Mercurial
image/svg+xml

Bazaar

🚫

🚫

🚫

🚫

Outils de gestion de version

Une forge logicielle ≠ GIT

Une forge logicielle c'est ça 👇

👉 Plateforme de dépôt pour du code source

Une forge logicielle c'est :

  • Système de gestion de version : souvent GIT
  • Distribution de fichiers : source-code, releases…
  • Espace de discussion : issues, pull/merge requests, forums…
  • Gestion de projets : Roadmap, Kaban board
  • Plateforme de tests : CI/CD, Actions
  • Espace de documentation : Wiki, Pages
  • Réseau social pour les développeurs

Les principales forges logicielles

Gitea

💰 👨‍💼 🌍 🔒

💰 👨‍💼 🌍 🔒 / 🕊️ 🧑‍🎓 🏫 🔓

💰 👨‍💼 🌍 🔒

🕊️ 🧑‍💻 🌍 🔓

🕊️ 🧑‍💻 🏫 🔓

🕊️ 🧑‍💻 🏫 🔓

Quelle forge logicielle ?

Plateformes généralistes :

Plateformes auto-hébergés :

🌍 github.com

🌍 gitlab.com

Authentification: EduGain
Authentification: Janus

Univ-Nantes

  • Version communautaire de Gitlab
  • Solution souveraine, hébergé en local et géré par la DSIN
  • Accessible à tous les personnels de l'université (LDAP)
  • Possibilité d'ajouter des collaborateurs externes

(avec quelques restrictions)

📦 Liste des projets

🔨 Présentation d'un projet

👀 Explorateur de fichiers

📣 Git blame

📖 Historique / Git log

🧑‍🏫 Gestion des membres

🐛 Liste des issues

🐛 Example d'issue

📝 Liste des merge requests

📝 Example de merge request

📝 Merge request différences

🪠 Merge request pipelines

🏋️ Intégration continue

✉️ Intégration continue

Résumé :

le Gitlab de l'université

  • Dépôt et de consultation de codes sources
  • Gestion des issues
  • Contributions grâce aux merges request
  • Tests avec l'intégration continue

Practice time !

🚧 👷 🏗️

Héberger ses codes sources

🏡

🔐 Authentification

🎸 Nouveau (sous) groupe

(optionnel)

🛠️ Nouveau projet

⚙️ Réglages du projet

🗂️ Éditer des fichiers sur Gitlab

🎈 Téléverser des fichiers

🐑 Cloner un dépôt

🏷️ Publier une release

🏛️ Software Heritage

⚠️ Aucune suppression n'est possible sur Software Heritage ‼️

et toutes le archives sont publiques

Résumé :

Héberger ses codes sources

  • Création d'un groupe (optionnel)
  • Créer un nouveau projet
  • Ajouter une license
  • Compléter le README.md
  • Ajouter / éditer des fichiers
  • Apposer une étiquette et faire une release
  • Archiver son code source sur Software Heritage

Collaborer sur un projet

🤝

🧑‍🏫 Ajouter des collaborateurs

🐛 Ouvrir une issue

📝 Proposer une merge request

new branch name

Résumé :

Collaborer sur un projet

  • Ajouter des membres au projet
  • Ouvrir des issues
  • Soumettre des merges requests
  • Valider les merges requests
  • Fermer les issues

Déployer

des applications

et des logiciels

🚀

📋 Add a test suite

🦾 Add continuous integration

🧱 Introduce a breaking change

✅ Add a linter

🩺 Fix python syntax

👏 Merge on success

🪪 Badges

🚀 Deploy on tag

Résumé :

Déployer des applications

  • Mettre en place des tests
  • Activer l'intégration continue
  • Utiliser un linter
  • Afficher des badges
  • Déployer vers des services externes