gitlab通過webhook.php自動部署標簽

//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");
    //校驗狀態(tài) 
    $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處做郵件或釘釘通知

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容