CI/CD 管線設計實戰

DevOps 2025-01-02T06:00:00.000Z

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

最佳實踐

  • 管線失敗時立即通知
  • 使用快取加速建置
  • 分離測試與部署階段
  • 設定部署審批流程