@編者按:
由於公司內部存在的開發系統:內網開發--外網預發布--外網生產環境,程序員頻繁的更新代碼造成運維人員大量時間被占用,於是有了使用該開源工具的部署測試環節。在這里感謝該開源工具的作者,也希望我這邊文檔能多少幫助需要類似開發環境的技術人員。
1.部署:
開源項目地址:https://github.com/kelvv/my-deploy
操作視頻教程:http://v.youku.com/v_show/id_XMTYxMjc0ODg3Mg==.html
基礎環境:node 4.X.X以上版本
git 2.7.4及以上版本
安裝:$ npm install -g my-deploy
2.配置:
創建配置文件
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