由於我的開發常常須要提交代碼,每次都須要鏈接服務器去pull代碼,重啓服務器就顯得十分繁瑣,所以github提供了一個時間鉤子,用戶push代碼後能夠通知指定服務器進行操做html
腳本僅僅用於接受代碼託管服務器的通知,所以應該儘可能比較各類依賴問題,因此咱們選擇在linux自帶的python2 上開發,使用原生的wsgiref模塊python
from wsgiref.simple_server import make_server import os def run(env,start_response): url=env['PATH_INFO'] if url=="/githook/": out=os.system('/website/Tadmin/pub.sh') start_response('200 OK', [('Content-Type', 'text/html')]) return str(out) start_response('200 OK', [('Content-Type', 'text/html')]) return "hello" if __name__ == '__main__': httpd = make_server('', 8080, run) print "server running on 8080" httpd.serve_forever() #allays running
當知道服務器有新的push,能夠在客戶端執行一系列的更新操做,在上面咱們直接調用了shell腳本執行linux
cd '/website/YourProject' git pull uwsgi --reload /website/YourProject/uwsgi.pid ps -ef | grep uwsgi
server的啓動直接使用CMD:nohup python server.py &
最後就是設置git的webhook 而後push代碼 服務器就會自動同步了git