我想将新工作从我的 Gitlab 存储库自动部署到在生产服务器上运行的实时网站。实时网站是live
分支的 GIT 回购克隆。
我的问题:
每次“构建”发生时,跑步者似乎都将我的回购重新克隆到
~/builds/...
. 这是强制性行为吗?我想我真正想要的只是git pull
在我的生产网站目录中。如果它真的必须每次都克隆 repo,为什么不
git reset
呢?至少这会随着时间的推移节省大量带宽,不是吗?如何运行
deploy.sh
存储库根目录中的哪个?我目前在我的 gitlab.com 构建信息中收到此错误:bash: line 23: deploy.sh: command not found
我的.gitlab-ci.yml
文件:
deploy_to_production:
script:
- deploy.sh
only:
- live
tags:
- prod
细节
为此,我想deploy.sh
在生产服务器上运行一个简单的 shell 脚本,每当我推送到我的 repo 的特定分支(live
在我的例子中是分支)时。这个 shell 脚本在我的 GIT 存储库中,与我的.gitlab-ci.yml
.
该脚本基本上只是执行git reset
,fetch
和pull
,使生产版本与存储库中的内容保持同步。
我在我的服务器上安装了一个“shell”多运行器,并将其连接到 gitlab.com,在那里我可以看到它处于活动状态。
总的来说,我是在叫错树吗?我是否应该更改我的deploy.sh
,以便它不会对新工作进行 git checkout,而是使用cp
或者可能rsync
将新代码从生产网站移动~/builds/...
到生产网站?