美文网首页
gitlab通过webhook.php自动部署标签

gitlab通过webhook.php自动部署标签

作者: 小牛_6666 | 来源:发表于2020-08-05 15:35 被阅读0次
    //git webhook 自动部署脚本
    $savePath = "/home/house/wxorder/";
    $requestBody = file_get_contents("php://input");
    if (empty($requestBody)) {
        die('send fail');
    }
    //解析Git服务器通知过来的JSON信息
    $content = json_decode($requestBody, true);
    if ($content['object_kind'] == 'tag_push') {
        preg_match("([Vv]?\d+\.\d+\.\d+)", $content['ref'], $match);
        if (empty($match)) {
            die('标签名不合法');
        }
        $tag = $match[0];
        if(!$content['checkout_sha']){
            shell_exec("cd {$savePath} && git tag -d {$tag}");
            die('标签删除');
        }
        //拉取代码
        shell_exec("cd {$savePath} && git pull");
        //切换标签
        shell_exec("cd {$savePath} && git checkout {$tag}");
        //安装扩展 可选
        shell_exec("cd {$savePath} && composer install");
        //重启队列 可选
        shell_exec("cd {$savePath} && php think queue:restart");
        //校验状态 
        $status=shell_exec("cd {$savePath} && git status");
        $now_branch = preg_match("([Vv]?\d+\.\d+\.\d+)", $status, $branch);
        if(empty($branch) || $branch[0] != $tag){
            die('部署成功');
        }else{
            die('部署失败');
        }
    }
    

    可以在die处做邮件或钉钉通知

    相关文章

      网友评论

          本文标题:gitlab通过webhook.php自动部署标签

          本文链接:https://www.haomeiwen.com/subject/feqorktx.html