核心思想
服務(wù)器利用crontab定時(shí)任務(wù)去每分鐘跑一個(gè)shell腳本,shell腳本的任務(wù)是打開服務(wù)器項(xiàng)目目錄,pull 一下www分支下的代碼鸵赖。ok,自動(dòng)化部署完成抚恒。而觸發(fā)這個(gè)事件,你需要鍵入的一行代碼就是將本地www分支上的代碼push到遠(yuǎn)程www分支即可巡蘸。
正常開發(fā)流程可能會(huì)有dev,test,stage,www四個(gè)環(huán)境奋隶。
dev環(huán)境是開發(fā)環(huán)境,test測(cè)試環(huán)境,stage預(yù)發(fā)布環(huán)境這三個(gè)環(huán)境分為一類,稱為線下環(huán)境。另一類就是線上環(huán)境了悦荒。
首先唯欣,在git上先為各個(gè)環(huán)境拉出對(duì)應(yīng)分支。dev,test,stage,www四條環(huán)境分支搬味。我們小伙伴開發(fā)在master分支上,當(dāng)需要對(duì)接口的時(shí)候境氢,我們切換到dev分支merge掉master分支。然后將本地的dev分支推送到遠(yuǎn)程的dev分支上去碰纬。此時(shí)萍聊,crontab定時(shí)器跑任務(wù)時(shí)候,會(huì)把遠(yuǎn)程dev分支的更新pull下來悦析。而pull下來的代碼此刻就完成了服務(wù)器代碼的更新部署操作寿桨。同樣的姿勢(shì),你可以在test及stage環(huán)境下操作。
但是强戴,線下操作與線上操作不能同樣對(duì)待亭螟。畢竟上線代碼不是每個(gè)小程序員都有的權(quán)力挡鞍。可以在push到遠(yuǎn)程www分支時(shí)候設(shè)置權(quán)限媒佣,每一個(gè)pr都要主管同意才能push成功匕累,從而達(dá)到安全性的把關(guān)。