交付自動化 基礎
CI/CD 流水線包含哪些關鍵階段?CI 和 CD 有什麼區別?
CI vs CD
持續整合 (CI - Continuous Integration) 開發者頻繁將程式碼合併至主分支,每次合併都自動觸發建置與測試,儘早發現問題。
持續交付 (Continuous Delivery) 在 CI 基礎上,確保軟體始終處於可部署狀態,但部署需要手動觸發。
持續部署 (Continuous Deployment) 更進一步,通過所有自動化測試後自動部署至生產環境,無需人工介入。
典型 CI/CD 流水線階段
- Source:程式碼推送或 PR 觸發 pipeline
- Build:編譯、打包、建立 Docker image
- Unit Test:快速單元測試(秒級)
- Integration Test:整合測試(分鐘級)
- Security Scan:SAST 靜態分析、依賴漏洞掃描
- Push Artifact:推送 image 至 Container Registry
- Deploy to Staging:部署至測試環境
- E2E Test:端到端測試
- Deploy to Production:部署至生產環境(手動或自動)
GitHub Actions 範例片段
on: push: branches: [main] jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - run: npm ci - run: npm test
快速失敗原則
將最快的測試放在最前面(unit tests 優先),讓開發者儘早得到回饋,避免等待耗時的 E2E 測試才發現基本問題。
✦ AI 模擬面試
輸入你的答案,AI 即時分析精準度與改進空間
登入後即可使用 AI 評分
