基于 Webhooks gitlab 自动化构建

基于gitlab webhooks 自动构建流程

1、服务器安装 git 服务

安装成功

配置 PHP 脚本:

<?php
        // 接受头部信息
        if (!isset($_GET['youparam'])) {
            logs('youparamnot isset');
            exit();
        }

        if ($_GET['youparam'] != 'qiuxue666') {
            logs('youparamnot neq key');
            exit();
        }

        // 接受参数
        $datas = file_get_contents('php://input', 'r');;
        $datas = json_decode($datas,true);

        // 参数配置
        $brand    = 'master';
        $execName = './exce_' . $brand .'.sh';

        $brands = 'refs/heads/' . $brand;
        if(isset($datas['ref']) && $datas['ref'] == $brands){

            $result = exec($execName);
            // logs(" exec result: " . $result);

        }
        logs($datas['user_name'] . " commit to branch:" . $brand);

        function logs ($data) {
            $text    = '[' . date('Y-m-d H:i:s') .'] ' . $data . PHP_EOL;
            file_put_contents('./log/gitlab'.date('md') . '.log', $text,FILE_APPEND);
        }

?>

 shell 脚本编写:

#!/bin/sh


#php shell脚本目录 path="/data/wwwroot/objpath"
#项目脚本目录(要判断的目录)
objpath="/data/wwwroot/objpath/obj" if [ -d "$objpath" ]; then cd "$objpath" git pull else cd "$path" # 拉取 master     git clone -b master git@gitlab.com:youname/youobj.git fi

gitlab 配置webhooks:

 

webhooks 推送的一些参数(具体可写入日志查看):

ref 参数可以看到推送事件所属那个分支

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值