Mise à jour automatique de la documentation

Objetctif

L’objectif est la mise à jour automatique est continue de l’ensemble des sous-modules des différents dépôts liés à la documentation Veremes.

Pour ce faire il faudra créer un serveur linux sur lequel il faudra installer Git et GitLab, pour nous ce sera vm09.veremes.net

Le but est de placer sur chacun des dépôts utilisés comme sous-module (ex: doc_module_vitis, doc_module_anc) un web-hook vers le serveur web-hooks (ex: https://gitlab.veremes.net:444/webhooks/update_submodules.php).

Lors de chaque modification sur le sous dépôt, gitlab envéra une requête POST à l’URL du serveur web-hook, ce la va déclencher le script update_repos_submodules_as_veremes.sh qui va mettre à jour localement les différents dépôts, mettre à jour leurs sous-modules et commiter le tout avec le compte Veremes.

Fonctionnement

Sur chaque sous dépôt un webhook ver https://gitlab.veremes.net:444/webhooks/update_submodules.php envoie lors de chaque modification une requête au serveur. Sur ce dernier le fichier update_submodules.php va lancer le script update_repos_submodules_as_veremes.sh qui à sont tour lancera update_repos_submodules.sh en tant qu’utilisateur veremes. Ce dernier contient une liste de projets parents, pour chacun d’entre eux il mettra à jour l’ensemble des sous-modules et commitera le message “update submodules”.

Dépot local

Il faut dans une première partie re-créer sur la serveur dans un dossier en lecture/écriture /var/tmp_git_repos/ dans lequel il faudra placer le fichier update_repos_submodules.sh et lui donner des droits en exécution uniquement.

sudo apt install -y expect
sudo mkdir /var/tmp_git_repos/
sudo chmod 777 -R /var/tmp_git_repos/

Serveur web-hooks

Il faudra installer un apache php à câbler sur le port 81 puis dans le répertoire www/html créer un répertoire webhooks et y mettre le fichier update_submodules.php

sudo apt install apache2
sudo nano /etc/apache2/ports.conf
sudo nano /etc/apache2/sites-available/000-default.conf
sudo /etc/init.d/apache2 restart