node服務通過Jenkins上線流程


構建流程

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

測試環境上線

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

沙箱環境上線

同測試環境上線流程

線上環境上線

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

項目約定與構建參數

發布流程的使用方式

傳入代碼分支與目標機器,服務即可部署到指定機器

項目約定

為了自動化程序能夠順利對項目進行構建,需要項目提供以下接口,接口命令可以為空,但是入口必須存在。

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 以外,線上不提供其他全局命令,如果需要此類命令,請在項目中自行依賴

規范 Pm2 的使用

建議使用 pm2 啟動服務,服務必須有應用名,在停止服務時,禁止使用 pm2 kill ,因為這個命令同時會關掉同機器上的其他服務

測試環境與沙箱環境的 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 服務的線上資源地址,靜態資源自動發布到對應目錄下, 無需手動設置

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM