diff --git a/automaj_doc/automaj_doc.md b/automaj_doc/automaj_doc.md new file mode 100644 index 0000000000000000000000000000000000000000..1ad5edb5bd4f92244baae3999d070f0e05f4857e --- /dev/null +++ b/automaj_doc/automaj_doc.md @@ -0,0 +1,21 @@ +# 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: http://vm09.veremes.net:81/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. + + + +## 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 les fichiers update_repos_submodules.sh et update_repos_submodules_as_veremes.sh et leur donner des droits en execution uniquement. + +## 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 diff --git a/automaj_doc/update_repos_submodules.sh b/automaj_doc/update_repos_submodules.sh new file mode 100644 index 0000000000000000000000000000000000000000..2333aface41ae0d12cf5a83024dc5d806e2634ff --- /dev/null +++ b/automaj_doc/update_repos_submodules.sh @@ -0,0 +1,30 @@ +#!/bin/sh +# +# Scirpt permettant de mettre à jour automatiquement les sous-modules des applications contenant ce module +# + +for repo in `echo doc_app_vmap doc_app_gtf doc_app_calimap doc_app_extraction doc_app_myrecepisse doc_app_risdict doc_app_sigrando`; do + echo "---- Clone ${repo} ----" + if [ ! -d "$repo" ]; then + git clone "git@vm09.veremes.net:Documentation/${repo}.git" + fi + if [ -d "$repo" ]; then + if [ -d "$repo/.git" ]; then + cd ${repo} + echo "-- config email --" + env -i git config user.email "gitlab@veremes.com" + env -i git config user.name "Veremes" + echo "-- git pull --" + env -i git pull + echo "-- git submodule update --" + env -i git submodule update --recursive --remote --init + echo "-- git add --" + env -i git add -A + echo "-- git commit --" + env -i git commit -a -m "update submodules" + echo "-- git push --" + env -i git push + cd .. + fi + fi +done diff --git a/automaj_doc/update_repos_submodules_as_veremes.sh b/automaj_doc/update_repos_submodules_as_veremes.sh new file mode 100644 index 0000000000000000000000000000000000000000..af467bac9127d491d7cda983b230a12b255f5876 --- /dev/null +++ b/automaj_doc/update_repos_submodules_as_veremes.sh @@ -0,0 +1,18 @@ +#!/usr/bin/expect -f +set password "veremes**gitlab" + +spawn ./update_repos_submodules.sh + +set timeout 600 +expect { + -nocase "*?Enter passphrase*" { + send "$password\r" + exp_continue + } + -nocase "*?(yes/no*" { + send "yes\r" + exp_continue + } +} + +expect eof diff --git a/automaj_doc/update_submodules.php b/automaj_doc/update_submodules.php new file mode 100644 index 0000000000000000000000000000000000000000..bbae515eae23576911259bb98fdcff989f08006d --- /dev/null +++ b/automaj_doc/update_submodules.php @@ -0,0 +1,8 @@ +<?php + chdir("/var/tmp_git_repos/"); + $aOutput = array(); + exec("./update_repos_submodules_as_veremes.sh", $aOutput); + foreach ($aOutput as $key => $value) { + echo('<div>' . $value . '</div>'); + } +?>