Le 02 février à 15:50 Denis Bitouzé a écrit
Peux-tu en dire un ou deux mots ? Imagine que tu ne puisses être présent
à l’AG ? 
Oui, tout à fait, tu as raison. J’utilise la fonctionnalité de CI/CD de
gitlab (ici sur l’instance Framagit, mais n’importe quelle instance
convenablement configurée fait le job)
Cette fonctionnalité se base sur les hooks de git. Pour ceux qui ne sont pas
nécessairement familier avec les outils de développement, git est un
gestionnaire de version distribué, orienté modification. Pour faire simple,
git ne connait pas les fichiers, mais une série de patches, identifiés par
des hash chainés, permettant de reconstruire les fichiers. Bien sûr, cela
est transparent, et les système de fichier, lui ne connait que la dernière
version du fichier.
La gestion de version, avec git, repose principalement sur l’ajout (git add
fichier) qui ajoute les dernières modifications en cours à l’index des
modification à commetre dans git. Une fois les modifications commises, on
peut «rincer et répéter». L’histoire de l’utilisation de git peut largement
s’arrêter là, mais on peut aussi «pousser» l’index des modifications vers un
serveur distant et réciproquement, tirer des modifications depuis un serveur
distant. Il existe, intégrés à git, des outils de fusion des éventuelles
modifactions, le rendant très pratique (une fois qu’un flot de travail, avec
des rôles a été défini)
Un des points intéressants, et utiles ici, de la conception de git est la
possibilité d’associer, à la plus part des actions (add, commit, push, pull,
receive (côté serveur)) des scripts, aussi bien à éxécuter avant ou après.
C’est là que le mécanisme des pages gitlab rentre en action.
L’idée est de pousser le code sur un serveur gitlab, et lorsque celui-ci est
reçu, le serveur lit la configuration du fichier .gitlab-ci.yml qui lui
indique quoi faire. Dans mon cas (à vrai dire, c’est le «meilleur
compromis»), le serveur télécharge une image Docker (un environnement de
virtualisation jetable), applique les règles de construction des documents
(ici, compilation de tous les documents avec latexmk) et les publie dans
un espace dédié (ici, toujours sur Gitlab, mais on peut les envoyer partout,
il suffit d’écrire le script correspondant).
Si vous n’avez pas tout compris, ça n’est pas grave, je vous joins un
exemple (merci d’être indulgent, c’est ma première année d’enseignement de
NSI et les documents sont en cours d’élaboration) :
Le fichier mentionné : Connexion · GitLab
La vue des compilations : Connexion · GitLab
Les documents générés : Vérification que vous n'êtes pas un robot !
D’autres points sont imaginables, comme ajouter un script permettant de
détecter les fautes de langue, de respecter un style de code, …
Comme souvent en informagique, «Imagination is your limit !»
Cordialement,
Vincent-Xavier JUMEL Id: vincentxavier (Vincent-Xavier Jumel) | Keybase http://jumel.net
Rejoignez les 3980 adhérents de l’April Adhérez aujourd'hui à l'association April pour soutenir le logiciel libre | April
Parinux, logiciel libre à Paris : http://www.parinux.org