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 | ...
随机推荐
- 采购申请 POCIRM-001:ORA-01403: 未找到任何数据
今天同事让帮忙看一个问题,在销售模块提交销售订单生成采购订单的请求时报错 查看请求日志 +------------------------------------------------------- ...
- 网站开发进阶(三十四)编码中的setCharacterEncoding 理解
编码中的setCharacterEncoding 理解 1.pageEncoding="UTF-8"的作用是设置JSP编译成Servlet时使用的编码. 2.contentType ...
- 【IOS 开发】Object-C 入门 Xcode 环境详解
作者 : 韩曙亮 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/38424965 一. Xcode 环境安装 与 工程创建 1. ...
- FilterDispatcher is depredated!plesae use the new filters
一些struts2的教程都是比较早的,当我们基于较新版本的struts2来实现代码的时候,往往会出现一些问题.比如这个警告:FilterDispatcher isdeprecated! 在web.xm ...
- SpriteBuilder中应用智能精灵集之后提示找不到文件的解决
SpriteBuilder中有一个将方便的功能,可以用文件夹中的若干图片生成1张图片;这称之为智能精灵集合(smart sprite sheet).好处是可以一次性的加载图片到显存中去,提升了性能. ...
- 《java入门第一季》之类(Scanner类)
/* * Scanner:用于接收键盘录入数据. * * 前面的时候: * A:导包 * B:创建对象 * C:调用方法 * * System类下有一个静态的字段: * public static f ...
- 安全退出app,activoty栈管理
前言 由于一个同学问到我如何按照一个流程走好之后回到首页,我以前看到过4个解决方案,后来发现有做个记录和总结的必要,就写了这篇博文.(之前看小强也写过一篇,这里通过自身的分析完整的总结一下以下6种方案 ...
- 大型服装集团BI决策系统的分析主题模块
一般BI商业智能解决方案都包含财务.销售.客户等分析模块,本文分享的是某大型服装集团通过帆软FineBI建设的BI决策系统.该决策系统主要针对财务.资金.采购.生产.库存.物流.销售.渠道.产品.客户 ...
- hive parition的使用,分dynamic和static两种
partition是hive提供的一种机制:用户通过指定一个或多个partition key,决定数据存放方式,进而优化数据的查询 一个表可以指定多个partition key,每个partition ...
- linux grep 和 sed使用
http://www.cnblogs.com/zhuyp1015/archive/2012/07/01/2572289.html 听说过sed 和 awk 比较强大,专门学习了一下. 使用这些shel ...