我将在我的学校创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议拿包来避免这个。