自动从github拉取服务器中的代码。

问题描述 投票:0回答:1

我正在开发一个laravel应用程序,并有一个测试服务器设置,以显示演示给客户端。我如何在服务器上获取代码是我把代码推送到github,然后登录到服务器上,把代码拉到那里并运行.有没有一种自动化的方式来做这件事?我看了一下持续集成交付,似乎是在处理测试代码?

php laravel continuous-delivery
1个回答
3
投票

你可以通过使用webhook让git pull在服务器上每次有提交时运行,可以通过使用webhooks来实现。

在GitLab上,进入设置-> 集成度

输入一个网址到你的服务器和一个处理webhook的文件,本教程我将创建一个名为gitlab.php的文件,网址将是

http://example.com/gitlab.php

输入你的网址,确保推送的事件是门票,然后点击添加Webook。

现在前往你的服务器,在服务器上创建一个php文件。

触摸 gitlab.php (你可以给它起任何名字,但要和 GitLab 上的 webhook 匹配),因为创建的文件没有正确的权限,所以用 chmod 命令修改它。

chmod 644 gitlab.php

现在用vim编辑文件。

vi gitlab.php按i进入编辑模式。

输入

git pullThen press escape to go into read mode 然后按escape键进入读取模式 then save and exit by press : 然后按wq键并回车。 then type wq and enter.

通过在文件中使用反向标记,服务器将把文件当作一个bash脚本。

或者,你可以使用 system_exec('git pull')

现在在GitLab上做一个改动,改动会自动推送到你的服务器上。


1
投票

使用rsync

1)你可以 rsync 从你的实例中直接将代码发送到客户的server:path中。

例子:

rsync -avz yourwebfolder/ user@customerserverip:/var/www/

使用CICD

2) 你也可以推送到Github或Gitlab,并有一个CICD,它可能会运行测试,如果测试通过,就直接推送到客户的服务器上,(为此你需要在git构建和客户的服务器之间设置ssh密钥。

代码的测试永远是可选的,但也永远是可取的。所以你可以不做任何测试就做CICD。

如何进行CICD

如果你的版本库在Github上,请进入它,然后点击 Actions在那里你可以设置工作流程。网上有关于如何设置的教程,这里有一个。考研辅导书.

Gitlab也有类似的CICD部分,你可以在这里创建一个新的CICD。.gitlab-ci.yml 文件,并在其中添加说明。


-1
投票

在服务器中创建一个SSH密钥,并将该公钥添加到github中。做完这些后,你就不需要登录推送或拉取了。

创建公钥和私钥http:/lunar.lyris.comhelplm_help12.0Contentgenerating_public_and_private_keys.html。

添加密钥到githubhttps:/help.github.comengithubauthenticating to-githubadding-a-new-ssh-key-to-your-github-account(新的ssh-key到你的github账户)。

© www.soinside.com 2019 - 2024. All rights reserved.