使用webhook自动化更新代码到服务器

了解webhook很久了,今天在自己的服务器上测试了一把,原理很简单,大致如下:
1.本地提交代码
2.服务器接收到提交代码请求后,向webhook指定的链接地址发起一个请求,调用指定程序在服务端拉取提交的代码

webhook的代码很简单,执行一下git pull命令即可
本文使用coding.net作为git代码仓库
下面以php代码为例:

//1.得到代码仓库传过来的参数
$post_data = json_decode(file_get_contents("php://input"));
//2. 判断token是否合法
if($post_data->token === 'your token') {
    //实际编写中遇到没有设置用户名和邮箱的问题,所以这时里我多运行了一次
    shell_exec("git config --global user.email 你的邮箱");
    shell_exec("git config --global user.name 你的用户名");
    //这里得到当前文件所在目录
    $pwd = getcwd();
    //因为我使用的是laravel框架,webhook.php文件我放在public下面的,所以这里多运行了一个cd ..
    $command = 'cd ' .  $pwd . ' && cd .. && git pull 2>&1';
    $status = shell_exec($command);
    
    print $status;    
}

说明:

  1. webhook文件放的目录需要与你代码中执行的路径相对应,比如说我这里文件是放在public里面的,所以我在得到当前目录后,又多运行了一次cd ..

你可能感兴趣的:(使用webhook自动化更新代码到服务器)