我想用Gitlab安装程序实现的是,当管理员从Gitlab用户界面创建新项目时,它会自动将项目克隆到用户可以工作的apache的根目录,并从浏览器查看更改而不是将项目克隆到本地系统并将其推送到apache根目录。
我喜欢自动克隆新创建的gitlab项目,克隆在/ var / www / html /
答案 0 :(得分:0)
您需要利用API和CI来执行此类操作。所需的步骤将是这样的:
创建一个System Hook,在项目创建时触发。
如果发生挂钩,请创建一个.gitlab-ci.yml
文件,该文件定义您的网络服务器上的部署。
Enable the runner因此可以进行部署。
现在每次推送存储库时,它都会部署在网络服务器上。
示例:
通过管理界面Admin Area -> System Hooks
或curl
命令创建系统挂钩。 Doc
curl -X POST -H "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" "https://gitlab.example.com/api/v3/hooks?url=https://gitlab.example.com/hook"
只要发生以下某个事件,就会调用网址https://gitlab.example.com/hook
:
project_create, project_destroy, project_rename, project_transfer, user_add_to_team, user_remove_from_team, user_create, user_destroy, key_create, key_destroy, group_create, group_destroy, user_add_to_group, user_remove_from_group
现在我们需要创建一种在调用https://gitlab.example.com/hook
时运行的脚本。此脚本执行另一个curl
请求,该请求创建.gitlab-ci.yml文件或使用git自动创建第一个提交。 Doc
curl -X POST -H 'PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK' -F 'file_path=.gitlab-ci.yml' -F 'branch_name=master' -F 'commit_message=Initial' -F $'content=CI DEFINITION GOES HERE' 'https://gitlix.sw.jena.com/api/v3/projects/48/repository/files'
然后,您需要为此项目启用一个运行器,以便将其部署到您的Web服务器。 Doc
curl -X POST -H "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" "https://gitlab.example.com/api/v3/projects/9/runners" -F "runner_id=9"