服務器(三):利用github的webhooks實現自動部署

實現自動部署的關鍵就是利用github的webhooks,咱們在github創建一個項目以後,在項目主頁點擊Settings,看到Webhooks點擊打開能夠添加一個連接,這裏的意思是,github能夠幫你監聽一些項目發生的事件,當指定事件發生時,會向你指定的連接發一個post請求,而後你就能夠知道本身的哪一個項目發生了什麼事情,再去作一些具體的操做,那麼這時就能夠利用shell腳本實現項目自動pull而且從新部署,最後實現的效果就是在本地push代碼,一段時間事後,效果就展現在了網站上面。
自動部署的工具備不少,可是如今我們不使用工具,本身造一個簡單的輪子,這個輪子只實現一個webhooks接口,配合shell腳本,而後將另外一個項目從新啓動。
首先是webhooks要點,使用express-generate生成一個項目結構,在裏面添加一個post接口,這個接口只須要作一件事情,調用事先寫好的shell腳本,shell腳本里面要作兩件事情,一個是將當前正在運行的項目kill掉,而後拉新代碼將項目從新啓動,node執行shell命令的模塊是
child_process。
下面看一下shell腳本里面須要的簡要幾步:
#!/bin/sh export APP_PATH=/usr/share/nginx/test cd $APP_PATH && git checkout master cd $APP_PATH && git pull origin master cd $APP_PATH && npm i data=`ps -ef | grep "node test" | awk '{print $2}'` for i in $data; do kill $i; done cd $APP_PATH && node test.js > log &
首先是拉取新代碼,接着是我們須要從新部署的項目的進程號,而後kill掉,接着啓動便可。
若是項目須要在域名中被訪問,那麼就須要配置nginx代理 和子域名解析。
相關文章
相關標籤/搜索