node服務經過Jenkins上線流程

構建流程

  1. 構建服務器: 拉取指定分支代碼
  2. 構建服務器: 安裝依賴
  3. 構建服務器: 執行構建
  4. 構建服務器: 若是上線流程,則在 git 上建立 tag,供回滾使用
  5. 構建服務器:打包 node 服務代碼,和靜態資源代碼

測試環境上線

  1. 構建服務器:執行構建
  2. jenkins:拉取打包好的靜態資源和 node 服務代碼
  3. jenkins: 靜態資源部署到測試服務器
  4. jenkins: node 服務代碼上傳到測試服務器
  5. 測試服務器:啓動服務(須要 root 權限來設置 host)

沙箱環境上線

同測試環境上線流程node

線上環境上線

  1. 構建服務器: 執行構建
  2. jenkins:拉取打包好的靜態資源和 node 服務代碼
  3. jenkins:靜態資源代碼上傳到線上
  4. jenkins:CDN 刷新
  5. jenkins:node 服務代碼上傳到線上
  6. 線上機器:啓動服務

項目約定與構建參數

發佈流程的使用方式

傳入代碼分支與目標機器,服務便可部署到指定機器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 服務的線上資源地址,靜態資源自動發佈到對應目錄下, 無需手動設置

相關文章
相關標籤/搜索