@編者按:html
因爲公司內部存在的開發系統:內網開發--外網預發佈--外網生產環境,程序員頻繁的更新代碼形成運維人員大量時間被佔用,因而有了使用該開源工具的部署測試環節。在這裏感謝該開源工具的做者,也但願我這邊文檔能多少幫助須要相似開發環境的技術人員。node
1.部署:git
開源項目地址:https://github.com/kelvv/my-deploy 程序員
操做視頻教程:http://v.youku.com/v_show/id_XMTYxMjc0ODg3Mg==.htmlgithub
基礎環境:node 4.X.X以上版本web
git 2.7.4及以上版本npm
安裝:$ npm install -g my-deployjson
2.配置:api
建立配置文件bash
cd /data/test #進入到管理項目目錄 mydeploy init #建立配置文件.mydeploy.json
clone代碼到本地:
cd /data/test git clone git@gitlab.apicloud.com:swht/test.git .
配置文件: (注意:配置文件須要使用644權限)
{ "mode": "pullwatch", "url": "git@gitlab.apicloud.com:swht/test.git", "localdir": "/data/test", "interval": 3000, "branch": "dev", "hook": { "postchanged": "pm2 reload test" }, "rules": [ { "type": "commit", "value": "^Reload" } ] }
說明:mode--模式,分爲pullwatch、webhook兩種模式
url--管理項目倉庫地址:通常存放在github、gitlab或自建gitlab倉庫中
localdir--本地管理項目路徑;
interval--時間間隔,指mydeploy間隔多少時間去檢測git倉庫是否有更新,默認3000ms,建議內部開發服務器上使用pullwatch模式,主動隔一段時間去git pull最新代碼;
branch--分支,指開發代碼庫的分支,建議分爲幾個分支:dev--pre--master。若是內部開發人員較多,能夠建立本身的分支,由專門的代碼審查人員進行分支合併;
hook--代碼更新完以後須要執行的系統命令,借用pm2進行項目重啓操做;
rules--檢測更新的規則,即根據git提交的類型(commit、tags)、註釋信息進行更新;
備註:mydeploy start -c /data/test/.mydeploy.json -p 3110 自定義啓動方式,-c 指定配置文件的路徑,-p指定監聽的端口
mydeploy start #啓動默認的監聽端口爲3100