J'utilise Gitlab sur un serveur et je voudrais pousser mon référentiel git lors de la validation de la branche principale vers un autre serveur Web. Ainsi, lorsque je lance une nouvelle version du site Web, le serveur de production est mis à jour. Je sais que cela devrait être possible avec des crochets à l'intérieur de gitlab mais je ne peux pas trouver exactement comment. J'ai essayé le guide suivant http://danielmiessler.com/study/git/#website mais il n'est pas écrit pour être utilisé avec gitlab donc je manque des pièces.
Que dois-je faire sur le serveur Web de production et à quoi puis-je définir l'URL du hook?
Réponses:
gitlab utilise déjà le hook de post-réception en interne. vous pouvez jouer avec ce script et appeler votre hook aussi, mais d'après les documents, il semble que la manière "officielle" serait d'utiliser des "web-hooks", c'est-à-dire que gitlab appelle votre serveur web après réception et votre serveur web ensuite tire le référentiel. Je n'ai pas essayé cela moi-même, mais comme personne n'a répondu jusqu'à présent, j'ai pensé que je vous dirigerais dans cette direction:
pour activer les web-hooks, allez dans la page principale de votre projet et sélectionnez les hooks en haut à droite, en dessous du menu principal. ( http://yourgitlab.example.net/yourproject/hooks ). il y a un exemple et des documents liés à partir de cette page ( http://yourgitlab.example.net/help/web_hooks ).
Éditer://
Je l'ai essayé ce matin. Voici un exemple de script php. Il suppose que vous avez déjà cloné le référentiel et que le serveur Web dispose de toutes les autorisations / clés ssh nécessaires.
la source
Des crochets personnalisés ont récemment été ajoutés (car comme Gryphius l'a dit, les crochets réguliers sont utilisés en interne): https://github.com/gitlabhq/gitlabhq/blob/667c0a909bde1cf71f21d8ec9768e98b1c489030/doc/hooks/custom_hooks.md
Vous venez de créer un
custom_hooks
répertoire dans votre dépôt Git nu, et y mettez les crochets, puis GitLab s'assure qu'ils sont exécutés.la source
Gitlab n'a pas de hook post-réception puisque les développeurs ont remplacé gitolite par gitlab-shell .
Vous pouvez donc:
Assurez-vous que l'utilisateur git dispose de toutes les autorisations nécessaires pour exécuter les commandes de ce fichier
la source
hook
dossier existe déjà:hooks -> /opt/gitlab/embedded/service/gitlab-shell/hooks/