gitlab钩子搭建
目标:在本地开发机上push代码到GitLab仓库时,通过钩子同步到测试服务器
准备工作
GitLab 服务器一台
测试服务器一台
本地开发服务器一台
1.在gitlab上新建一个项目,名称test
2.在本地机上开发克隆gitlab项目
3.在本地机上配置gitlab事件触发回调地址 (http://domain.com/Hook/hook.php)
a.建立Hooks项目
建议目录:Hooks
|- item1
|- hook.php
|- logs
|- sh
|- git_dev_release.sh
|- item2
4.设置gitlab项目回调地址并进行测试
注意:需要注意的本地用户和Nginx请求用户都需要把公钥扔给测试服务器上
hook.php 代码
// 接收gitlab回调时推过来的流信息
$requestBody = file_get_contents("php://input");
// 数据类型转换
$content = json_decode($requestBody, true);
// 将流信息写入日志
file_put_contents("/home/xingfupeng/hooks/test/logs/test.log",var_export($content, true) . PHP_EOL,FILE_APPEND);
// 定义执行的命令
$devSh="/bin/bash /home/xingfupeng/hooks/test/sh/git_dev_release.sh";
if($content['ref'] == "refs/heads/dev" && $content['total_commits_count'] > 0) {
// 当 dev 分支提交的时候且提交的文件数量大于0时才进行同步操作
system($devSh) ;
}
git_dev_release.sh 脚本代码
LOG=/home/xingfupeng/hooks/test/logs/git_dev_release_test.log
echo "`date +%Y-%m-%d-%H:%M:%S` Begin update test code...$1..." >>$LOG
cd /home/xingfupeng/test
git checkout dev >>$LOG
git pull origin dev >>$LOG echo "=============Start to update the test program!!!=============">> $LOG
# 同步命令操作,将本地的/home/xingfupeng/test/文件夹下的所有文件同步到测试www@192.168.20.229:/app/izhuanbei_test目录下
rsync -az --delete --exclude=.svn --exclude=.git --exclude=.gitignore --exclude=logs --exclude=cache --exclude=conf --exclude=pdf --exclude=upload --exclude=pc --exclude=wechat /home/xingfupeng/test/ www@192.168.20.229:/app/izhuanbei_test echo "`date +"%Y-%m-%d %H:%M:%S"` SSH remote server 192.168.20.229_Server to modify config file!!!============" >> $LOG
gitlab钩子搭建的更多相关文章
- gitlab服务器搭建教程
gitlab服务器搭建教程 ----2016年终总结 三 参考https://bbs.gitlab.cc/topic/35/gitlab-ce-8-7-%E6%BA%90%E7%A0%81%E5%AE ...
- CentOS7下gitlab的搭建
gitlab的搭建 安装基础包 yum -y install curl policycoreutils openssh-server openssh-clients 启动sshd systemctl ...
- ubuntu gitlab服务器搭建
gitlab服务器搭建 1.安装依赖包 sudo apt-get install curl openssh-server ca-certificates postfix 执行完成后,出现邮件配置,选择 ...
- 基于GitLab CI搭建Golang自动构建环境
基于GitLab CI搭建Golang自动构建环境 Golang发布遇到的问题 对于golang的发布,之前一直没有一套规范的发布流程,来看看之前发布流程: 方案一 开发者本地环境需要将环境变量文件改 ...
- 基于【 centos7】五 || GitLab环境搭建
一.基于Docker部署GitLab环境搭建 1.下载镜像 docker pull beginor/gitlab-ce:11.0.1-ce.0 2.创建GitLab 的配置 (etc) . 日志 (l ...
- gitlab的搭建与汉化
gitlab的搭建:内存最好2G以上 yum -y install curl unzip policycoreutils git wget 安装相关依赖包 所有gitlab rpm包的 ...
- Docker DevOps实战:GitLab+Jenkins(1)- GitLab容器搭建、使用SourceTree pull/push项目
GitLab容器搭建 # 创建GitLab容器# --restart always #重启,容器自动重启# --privileged=true #容器内使用root权限 [root@localhost ...
- 基于CentOS7.x gitlab环境搭建,卸载,汉化 --汉化篇
gitlab环境搭建,卸载,汉化--汉化篇 注意gitlab的版本需和汉化版本一致 安装git yum install -y git 下载最新的汉化包 cd git clone https://git ...
- 基于CentOS7.x gitlab环境搭建,卸载,汉化 --卸载篇
gitlab环境搭建,卸载,汉化 --卸载篇 完全卸载 停止gitlab gitlab-ctl stop 卸载gitlab rpm -e gitlab-ce 查看gitlab进程 ps aux | ...
随机推荐
- react-native版本升级
时刻将React Native更新到最新的版本,可以获得更多API.视图.开发者工具以及其他一些好东西(译注:官方开发任务繁重,人手紧缺,几乎不会对旧版本提供维护支持,所以即便更新可能带来一些兼容上的 ...
- Android自定义Button的“款式”
要想让你的button呈现出一种不一样的外观,一般会采取以下两种形式 采用selector里面加图片的方式 采用selector用shape进行代码控制的方式 对第一种方式而言,只需要注意好" ...
- 9、Libgdx的输入处理
(官网:www.libgdx.cn) 不同的平台有着不同的输入方式.桌面用户可以通过键盘和鼠标与应用进行交互,基于浏览器的游戏也是这样.在Android中,鼠标被触摸屏所替代,通常没有实体键盘.And ...
- WebStorm开发工具设置React Native智能提示
最近在做React Native开发的时候,相信大家一般会使用WebStorm,Sublime,Atom等等开发工具.二之前搞前端的对WebStorm会很熟悉,WebStorm最新版是WebStorm ...
- unity shaderlab Blend操作
原文链接: http://www.tiankengblog.com/?p=84 Blend混合操作是作用于在所有计算之后,是Shader渲染的最后一步,进行Blend操作后就可以显示在屏幕上.shad ...
- [转]ubuntu安装vncserver实现图形化访问
请注意: 如果在安装中部分软件无法安装成功,说明软件源中缺包,先尝试使用命令#apt-get update更新软件源后尝试安装.如果还是不行,需要更换软件源.更换步骤: 1)输入命令#cp /et ...
- ARM-linux汇编常用语法
ARM linux常用汇编语法 ============================= 汇编语言每行的语法: lable: instruction ; comment 段操作: .section ...
- Android学习之旅-android系统服务的启动过程以及分类(90)
读了android开发精要这本书,所以我把书中的比较精彩的地方截图了,一块分享一下
- Android4.0Sd卡移植之使用vold自动挂载sd卡
在cap631平台上移植android4.0,发现内核驱动没有任何问题,能够读写,当总不能挂载. 后来发现是因为自动挂载需要vold的支持.vold程序负责检查内核的 sysfs 文件系统,发现有SD ...
- OPEN A PO ORDER OR SO ORDER
OPEN PO ORDER fnd_function.Execute(Function_Name => 'PO_POXPOEPO', Open_Flag => 'Y', Session_F ...