自動化部署-配置gitlab的web鉤子

實現功能

本地往服務器推送代碼之後,觸發web鉤子,服務器拉取剛剛推送的代碼

步驟

1.在gitlab後臺配置鉤子

項目-》編輯項目-》Web鉤子-》新增鉤子

2.在服務器端爲www用戶生成公鑰

生成公鑰
ssh-keygen -t rsa -C "登錄gitlab的郵箱"
查看公鑰
cat ~/.ssh/id_rsa.pub
複製公鑰,前往gitlab的項目設置,將公鑰添加進去

3.在服務器端首先使用git pull將項目拉取一遍

使用git pull先將代碼拉取下來

4.更改項目的git配置文件

在項目的根目錄vim ./.git/config,將裏面的配置項url的值改爲項目倉庫的ssh鏈接(不要使用http鏈接)

5.在項目根目錄寫hooks.php文件

hooks.php參考:

<?php
 $fs = fopen('./git_hook.log', 'a');
 fwrite($fs, 'Request on ['.date("Y-m-d H:i:s").']'.PHP_EOL);
 $json = file_get_contents('php://input');
 $data = json_decode($json, true);
 fwrite($fs, 'Data: '.print_r($data, true).PHP_EOL);
 fwrite($fs, '==============================================================='.PHP_EOL);
 $res = exec("cd 項目根目錄 && git pull origin master 2<&1",$output);
    fwrite($fs,$res);
 exit;
?>

6.推送測試

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章