CI/CD 管線設計實戰
CI/CD 是現代軟體開發的核心實踐,能自動化測試、建置、部署流程。
CI/CD 核心概念
- Continuous Integration:頻繁合併程式碼並自動測試
- Continuous Delivery:隨時可部署到生產環境
- Continuous Deployment:自動部署到生產環境
GitHub Actions 範例
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- run: npm ci
- run: npm test
- run: npm run build
GitLab CI 範例
stages:
- test
- build
- deploy
test:
stage: test
script:
- npm ci
- npm test
deploy:
stage: deploy
script:
- docker build -t myapp .
- docker push registry.example.com/myapp
only:
- main
最佳實踐
- 管線失敗時立即通知
- 使用快取加速建置
- 分離測試與部署階段
- 設定部署審批流程