GitLab配置并实现提交后同步代码到测试服务器

DusNoob 2018-10-19 644

第⼀步 测试服务器项⽬目录新建同步项⽬

1、在测试服务器上 nginx 项⽬目录下新建 deploy 目录,里面新建 deploysh runtime web 三个目录,deploysh 放执行代码同步的脚本文件,runtime 放日志⽂件,web 放处理调用脚本文件的 php 文件。 

2、web 目录下新建 index.php 文件,代码如下: 

<?php
    $target = isset($_GET['t']) ? $_GET['t'] : '';
    $module = '';
    switch($target){
        case 'test':
            $module = 'default';
            break;
        default:
            $module = "madian-{$target}";
            break;
    }
    if($target){
        $shell = '/alidata/xxx/default/deploy/deploysh/develop.sh';
        $shell = '/bin/bash'.$shell."$module";
        $result = system($shell);
        echo "===========execute:{$result}=";
    }else{
        echo "need query param t";
    }
    echo "deploy";
?>

3、deploysh ⽬录下新建 develop.sh 脚本文件,代码如下: 

#!/bin/bash
ROOT_PATH=/alidata/xxxx/default/
WEB_PATH=${ROOT_PATH}$1
WEB_USER=www
WEB_USERGROUP=www
LOG_FILE=/tmp/git.default.log
echo "start deployment..."
echo "pulling source code..."
cd $WEB_PATH
echo `pwd`
#git reset --hard origin/develop
#git clean -f
git pull origin develop >> $LOG_FILE
git checkout develop >> $LOG_FILE
echo "changing permission"
chown -R $WEB_USER:$WEB_USERGROUP $WEB_PATH
echo "finished"
第二步 配置 nginx 域名解析

1、在 nginx 虚拟域名配置文件中(我的位置是:/alidata/xxx/server/nginx/conf/vhosts/default.conf),加入如下代码: 

server{
    listen 80;
    server_name api-git-xxx.xxxx.com;
    index index.php index.html
    root /alidata/xxx/default/deploy/web;
    access_log /alidata/xxx/default/deploy/runtime/nginx-access.log;
    error_log /alidata/xxx/default/deploy/runtime/nginx-error.log;
    location /{
        try_files $uri $uri/ /index.php?$args;
    }
    location ~ \.php{
        include fastcgi_params;
        #include fastcgi.conf;
        limit_req zone=allips burst=10;
        fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
        fastcgi_pass 127.0.0.1:9001;
        fastcgi_index index.php;
        try_files $uri=404;
    }
    location ~ /\.(ht|svn|git|){
        deny all;
    }
}

第三步 gitLab 上配置 Webhooks

1、点击项目,进入项⽬

2、右上角点选 edit project 进入编辑项目页⾯

3、在左边菜单点 Webhooks 进入添加页⾯

4、在 URL 栏输⼊入 api-git-xxx.mamaqunaer.com?t=goods 保存添加就可以了, goods 是相应的项目名,原理参看上⾯面第一步 

第四步 在测试服务器上 git clone 项目代码 

1、在测试服务器与上面配置的相对应目录 终端执行 git clone git@192.168.1.248:zhaof/xxx-goods.git 

2、上面的完成后,执行 git checkout -b origin develop 切换到 develop 分支进行同步。 

到此,就完成了git 代码提交即自动同步到项目目录的功能 

最新回复 (0)
    • 都市菜鸟网
      2
        立即登录 立即注册 
返回