GitLab自动部署

我将在我的学校创build一个gitlab服务器来承载类代码。 我希望这样做,每当任何用户推到gitlab它自动部署项目到/var/www/gitdeploy/<repo-user>/<repo>/<branch> ,以这样一种方式, http://<myServer>/gitdeploy/<repo-user>/<repo>/<branch>

最好是部署所有分支机构,但至less主人会没事的。 所有这些将在同一台服务器上运行。

我听说过Gitlab CI,但不确定是否适合我,而且我也不知道如何设置它。

我怎么能这样做?

编辑:另外,我想我应该指定,我希望它的所有用户,希望没有我configuration为每个用户,冰环球

你可以用一个git服务器端钩子(比如post-receive )来部署你的代码。 Gitlab CI是专为此而devise的,您应该考虑使用它。

如果你使用钩子,钩子将是.git/hooks/post-receive/的shell脚本。 这将需要部署凭据,你需要自己写。 但是,这是一个钩子的用例。 查看文档: https : //git-scm.com/book/en/v2/Customizing-Git-Git-Hooks

另请参阅gitlab特定的文档: http ://doc.gitlab.com/ce/hooks/custom_hooks.html

我想出了一个可能的解决scheme,在'Omnibus'安装中,我相信可以通过在/opt/gitlab/embedded/service/gitlab-shell/hooks/post-receive添加一些ruby代码来创build一个全局钩子。 然而,每当你更新gitlab时,钩子将被恢复到软件包版本。 我会build议拿包来避免这个。