Git----使用WebHook實現代碼自動部署

  原由: 常常本地push到gitee等線上代碼倉庫,而後登錄服務器在進行pull,很麻煩,想偷懶怎麼辦?使用git的webhook實現!

1.實現原理

  1.1本地提交推送

  1.2線上倉庫監聽push動做,也就是webhook,回調url觸發服務器的pull操做

  1.3服務器pull操做

2.實現步驟

  2.1本地和服務器安裝git(略過)

  2.2碼雲進入項目->管理->webhook設置,(其餘原理同樣 git,coding)

  url就是你服務器上能夠訪問的地址, 該地址是進行pull命令的文件,能夠是php,python,node等等等,勾選push就是當push動做的時候觸發這個url,訪問服務器進行pull操做,勾選其餘的就是其餘的動做,這裏不作解釋. 添加後,會有測試按鈕,建議代碼寫上測試一下

1 shell_exec('ls')

  若是返回文件目錄,則表示該權限能夠執行,服務器是LNMP, 而後只須要一行代碼(個人需求就是自動拉取,全部不作深刻的操做,好比驗證,日誌,分類什麼的能夠本身補充)經過代碼能夠查看回調的信息,根據信息進行操做

$request = json_decode(file_get_contents('php://input'), true)

  拉取動做

echo shell_exec('cd your_path && git pull')

3.一些坑

  若是不成功,建議 LL 命令查看一下用戶權限 通常PHP是www-data用戶, 使用

sudo chown -R :www-data your_path
sudo chmod -R g+w  your_path

  主要是權限問題,這樣應該能夠啦! 路由什麼的本身去搞定啦! 接下來就能夠開心的本地push服務器本身去pull啦~哈哈哈

相關文章
相關標籤/搜索