紅寶書第三十六講:持續集成(CI)配置入門指南
資料取自《JavaScript高級程序設計(第5版)》。
查看總目錄:紅寶書學習大綱
一、什么是持續集成?
持續集成(CI)就像咖啡廳的“自動質檢流水線”。代碼每次提交后,自動運行測試、檢查語法錯誤、打包代碼,確保所有改動不會破壞原有功能[[^6]]。
二、三步看懂核心配置流程
三、手把手創建 .github/workflows/ci.yml
(以GitHub Actions為例)
name: CI Pipelineon: # 觸發條件(當代碼推送到主分支時觸發)push:branches: [ "main" ]jobs:test-and-build:runs-on: ubuntu-latest # 使用最新版Linux系統steps:- name: 獲取代碼 🛒uses: actions/checkout@v4- name: 安裝Node.js 🔧uses: actions/setup-node@v3with:node-version: '20'- name: 安裝npm包 📦run: npm install- name: 運行單元測試 🧪run: npm test- name: 構建項目文件 🔨run: npm run build- name: 上傳構建產物 🚚uses: actions/upload-artifact@v3with:name: build-outputpath: dist/
四、關鍵環節詳解
-
監控代碼變動
on: push
設置觸發條件,每當代碼推送到main
分支時啟動流水線。 -
虛擬環境配置
runs-on: ubuntu-latest
指定在純凈的Linux環境執行任務,避免本地環境差異問題。 -
依賴安裝
npm install
自動安裝所有依賴(類似首次接手項目時npm i
的操作)。 -
自動化測試
npm test
執行所有測試用例。如果有測試失敗,自動停止流程并通過郵件通知(就像考試不及格必須補考)。 -
構建優化
npm run build
生成優化后的生產環境代碼(代碼壓縮、合并等處理)。 -
產物存檔
構建結果被打包成build-output.zip
保存,可隨時下載或對接后續部署流程。
五、常見配置場景
需求場景 | 解決方案 |
---|---|
定時執行任務 | 添加 schedule: 定時觸發器 |
多環境測試 | 定義矩陣策略并行測試 |
代碼質量檢查 | 集成ESLint/Prettier |
Docker鏡像打包 | 使用Docker相關Actions插件 |