From e2f3d3d010afc99432ff0c83359f55b60eafa1d1 Mon Sep 17 00:00:00 2001 From: Armand Bahi <armand.bahi@veremes.com> Date: Thu, 22 Mar 2018 15:36:48 +0100 Subject: [PATCH] =?UTF-8?q?ajout=20mise=20=C3=A0=20jour=20auto=20de=20la?= =?UTF-8?q?=20doc?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- automaj_doc/automaj_doc.md | 21 +++++++++++++ automaj_doc/update_repos_submodules.sh | 30 +++++++++++++++++++ .../update_repos_submodules_as_veremes.sh | 18 +++++++++++ automaj_doc/update_submodules.php | 8 +++++ 4 files changed, 77 insertions(+) create mode 100644 automaj_doc/automaj_doc.md create mode 100644 automaj_doc/update_repos_submodules.sh create mode 100644 automaj_doc/update_repos_submodules_as_veremes.sh create mode 100644 automaj_doc/update_submodules.php diff --git a/automaj_doc/automaj_doc.md b/automaj_doc/automaj_doc.md new file mode 100644 index 0000000..1ad5edb --- /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 0000000..2333afa --- /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 0000000..af467ba --- /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 0000000..bbae515 --- /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>'); + } +?> -- GitLab