GitHub est un service web d’hébergement de sources utilisant le logiciel de gestion de versions Git. GitHub permet de gérer l’évolution du projet et de travailler de manière collaborative.
Je vais décrire ici comment héberger son projet Arduino sous GitHub. Cela vous permettra d’avoir une sauvegarde en ligne de vos projets. Mais cela permettra surtout de pouvoir partager le fruit de son travail avec la communauté.
Création d’un compte GitHub
Vous devez vous créer un compte sur le site https://github.com/ en suivant la procédure “Sign up”. Un compte gratuit est suffisant pour héberger vos projets et les rendre accessibles à tous si vous le souhaitez.
Une fois que vous avez fourni votre email et un mot de passe, il faut ensuite vous choisir votre username. Ce username est important car tous vos projets seront accessibles via l’url https://github.com/username/projet.
Génération d’un token d’authentification
Vous devez créer un token qui vous permettra de vous authentifier dans les phases suivantes. Pour cela il faut aller dans le menu Settings/Developer setting/Tokens (classic) et cliquer sur Generate new token (classic).
Il faut ensuite cocher la case repo qui vous permettra d’avoir le contrôle sur votre dépôt grâce à ce token. Attention votre token a une durée de vie limitée, il faut lui fixer une date d’expiration. Il faudra renouveler l’opération à l’issue de cette période.
Création d’un dépôt (repository)
Sous GitHub un dépôt (repository en anglais) est un espace dans lequel votre projet sera entreposé. Il permet de stocker tous les fichiers de votre projet. Le principe de Git est de gérer les différentes versions d’un projet, et bien entendu le dépôt permet d’avoir accès à toutes ces versions.
Afin de pouvoir stocker notre projet Arduino, il faut tout d’abord créer votre premier dépôt sous GitHub.
Il suffit d’indiquer le nom du dépôt et si il s’agit d’un dépôt public ou privé (visible par vous uniquement). Il faut créer ce dépôt totalement vide, n’ajoutez pas de fichier “README” et ne sélectionnez pas de licence à ce stade.
Une fois créé le dépôt est accessible depuis son url. Mon username étant tutoduino, mon dépôt myproject est accessible depuis cette url : https://github.com/tutoduino/myproject
Le concept de branche
La fonctionnalité de base de Git est de gérer différentes versions d’un code source. Il est ainsi possible de revenir sur une version précédente du code et d’historiser les modifications apportées.
Une autre fonctionnalité de Git est de pouvoir développer plusieurs versions en parallèle. Soit pour permettre de développer une fonctionnalité particulière sans pour autant “polluer” le flux principal, soit pour permettre à plusieurs développeurs de développer différentes fonctionnalités sans se perturber les uns les autres.
C’est là qu’intervient le concept de branche. Fondamentalement, une branche est la ligne isolée et indépendante, qui peut être créée par exemple pour le développement d’une nouvelle fonctionnalité.
Supposons que la ligne du milieu en bleu soit la branche principale (main) où le code est stable et mis à jour. Le développeur affecté au développement d’une nouvelle fonctionnalité va créé une branche à partir de la branche principale. Et c’est sur cette branche en orange qu’il va développer sa fonctionnalité. Une fois la fonctionnalité validée, le développeur pourra fusionner sa branche sur la branche principale.
Dans ce tuto, nous n’utiliserons que la branche principale (main), nous souhaitons en effet uniquement stocker les différentes versions de notre code source.
IDE Arduino Sous Linux
Si vous utilisez l’IDE Arduino sous Linux, voici comment stocker votre programme dans votre dépôt GitHub depuis votre répertoire local de stockage du projet.
Tout d’abord il faut installer Git sur Linux :
sudo apt install git
Créez un projet test sous l’IDE Arduino et positionnez vous dans le répertoire du projet contenant votre programme test.ino.
Entrez les commandes suivantes dans votre terminal sous Linux (après avoir remplacé tutoduino par votre username dans l’url github):
echo "# myproject" >> README.md
git init
git add README.md
git add test.ino
git commit -m "first commit"
git remote add origin https://github.com/tutoduino/myproject.git
git branch -M main
git push -u origin main
Lorsque vous tapez la dernière commande, git vous demande votre username for ‘https://github.com’ et votre Password for ‘https://tutoduino@github.com’ il faut indiquer votre username GitHub et le mot de passe est votre token généré plus haut.
Si tout c’est bien déroulé, le message suivant devrait être indiqué par Git :
tutoduino@my-pc:~/Arduino/test$ git push -u origin main
Username for 'https://github.com': tutoduino
Password for 'https://tutoduino@github.com':
Énumération des objets: 4, fait.
Décompte des objets: 100% (4/4), fait.
Compression par delta en utilisant jusqu'à 12 fils d'exécution
Compression des objets: 100% (3/3), fait.
Écriture des objets: 100% (4/4), 385 octets | 385.00 Kio/s, fait.
Total 4 (delta 0), réutilisés 0 (delta 0), réutilisés du pack 0
To https://github.com/tutoduino/myproject.git
* [new branch] main -> main
La branche 'main' est paramétrée pour suivre la branche distante 'main' depuis 'origin'.
Votre projet Arduino est maintenant bien stocké sur GitHub, vous pouvez le vérifier en allant sur l’url de votre projet sur GitHub https://github.com/tutoduino/myproject. Votre programme test.ino ainsi que le README doivent y être stockés maintenant.
Mise à jour sur GitHub d’une modification du programme
Si vous changez le code de votre programme sur votre ordinateur en local, il est très facile de pousser la mise à jour sur GitHub.
La commande git commit permet de capturer un instantané du programme qui sera ensuite pousser vers GitHub :
git commit -m "Mise à jour du code pour ajouter la fonctionnalité xxx"
La commande git push pousse le programme vers GitHub dans l’état qu’il était au moment du dernier git commit :
git push -u origin main
Téléchargement d’un programme depuis GitHub
Il est bien entendu possible de télécharger les programmes depuis GitHub vers un répertoire local de n’importe quel ordinateur. Il suffit pour cela de cloner le dépôt GitHub avec la commande suivante :
git clone https://github.com/tutoduino/myproject.git
Notez qu’il est préférable de nommer le projet Arduino comme le dépôt GitHub, cela simplifie largement les opérations avec l’IDE Arduino.
Ensuite si vous modifiez un fichier dans votre répertoire de travail local, il suffit de faire un git add afin de placer la version modifiée dans une zone de préparation.
git add test.ino
Et une fois le code modifié il suffit de reprendre la procédure de commit et push :
git commit -m "Mise à jour du code pour ajouter la fonctionnalité xxx"
git push -u origin main
IDE Arduino sous Windows
Je vous recommande d’utiliser GitHub Desktop sur Windows, disponible sur le site https://desktop.github.com/.
Supposons que vous souhaitez stocker sous GitHub le projet Arduino myproject2
Vous devez tout d’abord créer le dépôt sur votre ordinateur. Pour cela ouvrez GitHub Desktop et cliquez sur Create a New Repository on your hard drive… :
Sélectionnez ensuite le nom du projet Arduino et indiquez dans quel répertoire il se situe (attention il faut indiquer le répertoire parent) puis créez le dépôt en cliquant sur Create repository :
Il suffit ensuite de publier le dépôt en cliquant sur Publish repository :
Vérifiez que le nom du dépôt qui va être publié sur GitHub correspond bien au dépôt que vous souhaitez créer et cliquez de nouveau sur Publish repository :
L’option Keep this code private permet de créer un dépôt privé, décochez cette option si vous souhaitez partager votre code avec la communauté.
Vous pouvez ensuite vérifier que le dépôt est bien créé sous GitHub :
Voilà, cette petite introduction est maintenant terminée. J’espère que cela vous a aidé à comprendre comment utiliser GitHub pour stocker vos projets Arduino. N’hésitez pas à noter ce tuto et à écrire des commentaires afin que je puisse l’améliorer.