我将在我的学校创建一个gitlab服务器来托管课堂代码。我希望这样做,以便每当任何用户推送到gitlab时,它都会自动将项目部署到/var/www/gitdeploy/<repo-user>/<repo>/<branch>,这样就可以访问http://<myServer>/gitdeploy/<repo-user>/<repo>/<branch>。
最好是部署所有分支,但至少主服务器是可以的。所有这些都将在同一台服务器上运行。
我听说过Gitlab CI,但不确定它是否适合我,我也不知道如何设置它。
我怎么能这么做?
编辑:我想我应该为所有用户指定它,希望不用我为每个用户配置它,ice globaly。
发布于 2015-08-31 18:45:44
我想出了一个可能的解决方案,在“Omnibus”安装中,我相信可以通过在/opt/gitlab/embedded/service/gitlab-shell/hooks/post-receive中添加一些红宝石代码来创建全局挂钩。但是,每当您更新gitlab时,这个钩子将被恢复到包版本。我建议保留这个方案以避免出现这种情况。
发布于 2015-08-25 21:21:17
您可以使用部署代码的git服务器端钩子(如post-receive)来完成此操作。然而,Gitlab CI正是为此而设计的,您应该考虑使用它。
如果使用钩子,钩子将是.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
https://serverfault.com/questions/716765
复制相似问题