構建流程
- 構建服務器: 拉取指定分支代碼
- 構建服務器: 安裝依賴
- 構建服務器: 執行構建
- 構建服務器: 若是上線流程,則在 git 上建立 tag,供回滾使用
- 構建服務器:打包 node 服務代碼,和靜態資源代碼
測試環境上線
- 構建服務器:執行構建
- jenkins:拉取打包好的靜態資源和 node 服務代碼
- jenkins: 靜態資源部署到測試服務器
- jenkins: node 服務代碼上傳到測試服務器
- 測試服務器:啓動服務(須要 root 權限來設置
host
)
沙箱環境上線
同測試環境上線流程node
線上環境上線
- 構建服務器: 執行構建
- jenkins:拉取打包好的靜態資源和 node 服務代碼
- jenkins:靜態資源代碼上傳到線上
- jenkins:CDN 刷新
- jenkins:node 服務代碼上傳到線上
- 線上機器:啓動服務
項目約定與構建參數
發佈流程的使用方式
傳入代碼分支與目標機器,服務便可部署到指定機器git
項目約定
爲了自動化程序可以順利對項目進行構建,須要項目提供如下接口,接口命令能夠爲空,可是入口必須存在。npm
npm install
安裝項目依賴,安裝後的目錄在項目根目錄下的 node_modules
目錄中,若是有其餘依賴須要安裝,須要在 postinstall
或 preinstall
中寫明。安裝階段構建工具只調用 npm install
一條命令。後端
npm run build
對項目進行構建,如需對靜態資源進行構建,一併在 build 命令中執行,若是存在靜態資源,靜態資源構建後的位置必須在項目文件夾內。瀏覽器
npm start
啓動 node 服務,用於在目標機器上執行,請注意 npm start
命令中應當包含關閉正在運行的本服務和從新服務兩步。服務器
host 文件
若是須要對線上機器設置 host,測試環境和沙箱環境分別在 config/hosttest、config/hostsandbox 中寫明,格式即爲 host 格式。工具
重要
不要依賴線上全局命令
除了 pm2 之外,線上不提供其餘全局命令,若是須要此類命令,請在項目中自行依賴gitlab
規範 Pm2 的使用
建議使用 pm2 啓動服務,服務必須有應用名,在中止服務時,禁止使用 pm2 kill
,由於這個命令同時會關掉同機器上的其餘服務post
測試環境與沙箱環境的 host 設置
在某些 node 服務中,須要對環境的 host 進行設置,構建工具會讀取項目中的 config/hosts.yaml 自動對 host 進行修改測試
Host
只配置在測試機上須要的 host, 如代理後端服務的 ip,不要配置如 cdn 地址等瀏覽器端的 host
build 和 start 命令
build 和 start 命令必須是能夠正常退出的命令,watch 等模式,會阻塞構建發佈流程的執行
構建參數
此處的參數用於在 jenkins 處填寫 scm_project
填寫項目在 gitlab.58corp.com 下的分組及名稱,格式 「group/project」 deploy_type
選擇部署類型static_name
靜態資源目錄,支持子目錄 online_machine
node 服務的線上資源地址,靜態資源自動發佈到對應目錄下, 無需手動設置