分类: Linux

Git WebHooks 配置教程


作者:朱培鑫

时间:2018-05-21

这里以码云平台为例,其他平台操作几乎一致。

1.新建项目后,切换至管理项,再切换至WebHooks项。

2.按下图所示勾选相应的选项,勾选的意思是当发生如下事件时触发自动更新操作。

3.填写一个URL地址,具体到文件名,接收POST请求,密码没有可以置空,提交。例如:【xxxxx.com/update.php】

20180503_213925.png

4.在服务器上clone这个项目,并且赋予这个文件夹读写权限 chmod -R 777 文件夹名,在克隆时选用https方式。

5.赋予这个文件夹下的.git目录 777 权限,因为我们在执行更新操作时是通过web请求来更新的,这时的用户不在是root,而是www,www-data等等,具体视不同平台而定,当我们赋予777权限后,将不再会出现权限问题。

6.在这个项目中新建一个update.php,内容如下

<?php
exec('../shell/update.sh 2<&1',$arr,$res);// 第一个参数为shell脚本地址,请结合自己的实际情况填写。
if($res == 0){
    $sta['status'] = 'update success';
}else{
    $sta['status'] = 'update failed';
}
$sta['res'] = $res;
$sta['arr'] = $arr;
echo json_encode($sta);

7.安装expect,用于自动交互输入账号密码,yum -y install expect

8.创建脚本文件

#!/bin/expect
set timeout 30
spawn cd ../文件名
spawn git pull origin master
expect "Username"
send "xxxxx\n"
expect "Password"
send "xxxxx\n"
interact

9.赋予脚本文件可执行权限,建议不要将shell脚本文件与项目文件放在同一个目录下

10.将上述代码更新至服务器,接下来即可进行测试。

( 本篇完 )