Estou usando o Gitlab em um servidor e gostaria de enviar meu repositório git ao confirmar o branch master para outro servidor da web. Então, quando eu envio uma nova versão do site, o servidor de produção é atualizado. Eu sei que isso deve ser possível com ganchos dentro do gitlab, mas não consigo descobrir exatamente como. Tentei o seguinte guia http://danielmiessler.com/study/git/#website, mas não foi escrito para ser usado com o gitlab, por isso estou perdendo peças.
O que preciso fazer no servidor da produção e para o que defino o URL do gancho?
Respostas:
O gitlab já usa o gancho pós-recebimento internamente. você pode mexer com esse script e chamar seu gancho também, mas a partir dos documentos, parece que a maneira "oficial" seria usar "ganchos da web", ou seja, deixe o gitlab ligar para seu servidor da web em pós-recebimento e, em seguida, para o seu servidor da web puxa o repositório. Eu mesmo não tentei, mas como ninguém respondeu até agora, pensei em indicá-lo nessa direção:
para ativar os ganchos da web, entre na página principal do seu projeto e selecione ganchos no canto superior direito, abaixo do menu principal. ( http://yourgitlab.example.net/yourproject/hooks ). há um exemplo e documentos vinculados nessa página ( http://yourgitlab.example.net/help/web_hooks ).
editar://
Eu tentei esta manhã. Aqui está um exemplo de script php. Ele pressupõe que você já clonou o repositório e o servidor da web possui todas as permissões / chaves ssh necessárias.
fonte
Ganchos personalizados foram adicionados recentemente (como Gryphius disse que os ganchos regulares são usados internamente): https://github.com/gitlabhq/gitlabhq/blob/667c0a909bde1cf71f21d8ec9768e98b1c489030/doc/hooks/custom_hooks.md
Você acabou de criar um
custom_hooks
diretório no repositório Git, e colocar os ganchos nele, e o GitLab garante que eles sejam executados.fonte
O Gitlab não possui um gancho pós-recebimento, já que os desenvolvedores substituíram o gitolite pelo gitlab-shell .
Portanto, você pode:
Verifique se o usuário git tem todas as permissões necessárias para executar os comandos neste arquivo
fonte
hook
pasta já existe:hooks -> /opt/gitlab/embedded/service/gitlab-shell/hooks/