Git WebHooks 配置教程
这里以码云平台为例,其他平台操作几乎一致。
1.新建项目后,切换至管理项,再切换至WebHooks项。
2.按下图所示勾选相应的选项,勾选的意思是当发生如下事件时触发自动更新操作。
3.填写一个URL地址,具体到文件名,接收POST请求,密码没有可以置空,提交。例如:【xxxxx.com/update.php】
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.将上述代码更新至服务器,接下来即可进行测试。
本文为原创文章,会经常更新知识点以及修正一些错误,因此转载请保留原出处,方便溯源,避免陈旧错误知识的误导,同时有更好的阅读体验。
本文地址:http://zhupeixin.com/article/2018/05/WebHooks
( 本篇完 )
- 下一篇: Nginx跨域配置