GitLab 自动部署

GitLab 自动部署

我将在我的学校创建一个 gitlab 服务器来托管课程代码。我希望每次任何用户推送到 gitlab 时,它都会自动将项目部署到/var/www/gitdeploy/<repo-user>/<repo>/<branch>,这样就http://<myServer>/gitdeploy/<repo-user>/<repo>/<branch>可以访问了。

最好部署所有分支,但至少主分支也可以。所有这些都将在同一台服务器上运行。

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

我怎样才能做到这一点?

编辑: 另外,我想我应该指定我希望所有用户都使用它,希望我不需要为每个用户都配置它,而是全局地

答案1

您可以使用部署代码的 git 服务器端钩子(例如post-receive)来完成此操作。但是,Gitlab CI 是为此设计的,您应该考虑使用它。

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

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

答案2

我想到了一个可能的解决方案,在“Omnibus”安装中,我相信可以通过在中添加一些 ruby​​ 代码来创建一个全局钩子/opt/gitlab/embedded/service/gitlab-shell/hooks/post-receive。但是,每当您更新 gitlab 时,该钩子都会恢复为软件包版本。我建议保留该软件包以避免这种情况。

相关内容