Github 准备事项1.在仓库settings里添加webhooks以私人仓库为例:
 1.创建完仓库之后,点击settings。设置webhooks访问路径:
 以我自己项目为例 ,框架使用的是tp6。在public/下创建一个名为basic.php的文件,目的在于当代码推送至服务器上时,github可以访问到并且可以执行的一个文件。 该文件用于执行shell 命令,在触发该链接时自动执行该文件里的命令,从而实现git 自动拉取。 2.测试链接是否生效,文件是否有被访问到
如上图所示,当出现绿色?时表示此链接被访问到,当出现红色??标志则表示文件没有被访问。以此排查链接问题还是代码问题。 [x] 至此Github方面完成。 PHP代码部署1.添加钩子文件 执行shell命令下面展示一些 内联代码片。
<?php
//git webhook 自动部署脚本
$requestBody = file_get_contents("php://input"); //接收数据
if (empty($requestBody)) { //判断数据是不是空
die('send fail');
}
$content = json_decode($requestBody, true); //数据转换
//若是主分支且提交数大于0
if ($content['ref']=='refs/heads/main') {
//或将命令加入 shell里,看个人需求 git reset --hard origin/master && git clean -f
$res = shell_exec('cd /www/wwwroot/xxxx/ && echo `sudo git pull` >> b.log');//PHP函数执行git命令
$res_log = '-------------------------'.PHP_EOL;
$res_log .= ' 在' . date('Y-m-d H:i:s') . '向' . $content['repository']['name'] . '项目的' . $content['ref'] . '分支push'.$res;
file_put_contents("git-webhook.txt", $res_log, FILE_APPEND);//将每次拉取信息追加写入到日志里
}
?>以上就是关于web hooks服务器自动拉取代码php thinkphp6的详细内容,更多请关注模板之家(www.mb5.com.cn)其它相关文章! |