GitHub Actions Workflow
Vibe Prompt
「幫我建立 GitHub Actions Workflow:Node.js 20,推送到 main 時自動 npm ci、lint、test、build。」
name: CI Pipeline
on:
push:
branches: [main, develop]
pull_request:
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Lint
run: npm run lint
- name: Test
run: npm test
- name: Build
run: npm run build
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: build-output
path: .next/
Vibe Prompt
「幫我解釋 GitHub Actions 的 runner、job、step、action 的關係,用生活比喻說明。」
本日總結
- ✅ GitHub Actions 基本結構
- ✅ CI Pipeline 範例
- ✅ Cache 加速依賴安裝
關鍵要點
- ✅ CI (持續整合) = 頻繁合併程式碼 + 自動建置 + 自動測試
- ✅ CD (持續部署) = 通過測試的自動部署到生產環境
- ✅ CI/CD Pipeline 的核心:Build → Test → Deploy
- ✅ GitHub Actions + Docker = 最受歡迎的 CI/CD 組合
- ✅ 好 CI/CD 的標準:快、可靠、可重現
關鍵指標
| 指標 | 目標 | 意義 | |------|:----:|------| | Pipeline 時間 | < 10 分鐘 | 開發者等待時間越短越好 | | 部署頻率 | 每天多次 | 越小批次的部署風險越低 | | 失敗恢復時間 | < 1 小時 | 出錯後能快速回退 | | 變更失敗率 | < 15% | 部署到生產後的故障率 |
GitHub Actions:CI/CD 的首選平台
GitHub Actions 是內建在 GitHub 中的 CI/CD 平台。你不需要另外設定 Jenkins Server——只要在 repo 中建立 .github/workflows/*.yml 檔案。
第一個 Workflow
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
Why GitHub Actions 比其他 CI 工具好?
| 比較 | GitHub Actions | Jenkins | GitLab CI | |:----|:-------------|:-------|:---------| | 設定難度 | 低(YAML) | 高(需安裝管理) | 中 | | 託管執行器 | ✅ 免費 2000 分鐘/月 | ❌ 自建 | ✅ 有限 | | Marketplace | 豐富的 Action 生態系 | 插件生態系 | 有限 | | 與 GitHub 整合 | 原生 | 需 Webhook | 需 mirror |
下一章預告:Docker 建置與推送
測試通過後,下一步是建置 Docker Image 並推送到 Container Registry——下一章教你這個 CI/CD Pipeline 的核心環節。