重要公告:我們的阿里 BP 專案部署流程已全面升級!即日起採用全新的自動化 CI/CD 流程,告別手動部署時代。
新流程超級簡單:
# 開發測試
git push origin main # 自動部署到開發環境
# 功能測試
git tag v1.2.0-rc.1 && git push origin v1.2.0-rc.1 # 自動部署到測試環境
# 正式發佈
git tag v1.2.0 && git push origin v1.2.0 # 自動部署到生產環境
# 為了測試功能往往需要重複執行這些指令...
ssh ali-server "cd /app && git pull"
ssh ali-server "docker-compose build"
ssh ali-server "docker-compose down && docker-compose up -d"
主要問題:
v1.2.3-rc.1
│││ │ └── RC 版本序號
│││ └────── 預發布標識符
││└──────── PATCH 版本(錯誤修復)
│└───────── MINOR 版本(新增功能)
└────────── MAJOR 版本(重大更新)
# 開發階段:直接推送,無需打 tag
git push origin main
# 測試階段:使用 RC 版本號
git tag v1.3.0-rc.1 # 第一版測試版本
git tag v1.3.0-rc.2 # 修復問題後的版本
git tag v1.3.0-rc.3 # 最終測試版本
# 發佈階段:移除 RC 後綴
git tag v1.3.0 # 正式發佈版本
變更類型 | 版本遞增規則 | 實際範例 |
---|---|---|
錯誤修復 | PATCH +1 | v1.2.3 → v1.2.4 |
新增功能 | MINOR +1 | v1.2.3 → v1.3.0 |
破壞性更新 | MAJOR +1 | v1.2.3 → v2.0.0 |
專案實際案例:
v1.2.3
→ v1.2.4
v1.2.4
→ v1.3.0
v1.3.0
→ v2.0.0
使用時機:完成小功能開發或錯誤修復,需要在開發環境進行測試
# 如同平常一樣推送到 main 分支
git add .
git commit -m "feat: 新增使用者頭像上傳功能"
git push origin main
# 系統將自動執行:
# 1. 建構 Docker 映像檔
# 2. 部署至開發環境
預期結果:1-2 分鐘後,您的程式碼變更將在開發環境生效!
使用時機:功能開發完成,需要在模擬生產環境進行完整驗證
# 建立 RC (Release Candidate) 測試版本
git tag v1.2.0-rc.1
git push origin v1.2.0-rc.1
# 系統將自動執行:
# 1. 建構測試環境專用映像檔
# 2. 部署至測試環境
如果測試中發現問題:
# 修復問題後建立新的 RC 版本
git commit -m "fix: 修復測試環境爬蟲檔案下載失敗問題"
git tag v1.2.0-rc.2
git push origin v1.2.0-rc.2
使用時機:測試環境驗證完成,準備發佈至生產環境
# 建立正式版本(重要:必須在已測試的 commit 上執行)
git tag v1.2.0
git push origin v1.2.0
# 系統將自動執行:
# 1. 建構生產環境專用映像檔
# 2. 部署至生產環境
A: GitHub Actions 建構映像檔約需 1-2 分鐘,各環境的部署時間會依據 Watchtower 的檢查頻率而定。
A:
# 刪除錯誤的標籤
git tag -d v1.2.0
git push origin --delete v1.2.0
# 重新建立正確的標籤
git tag v1.2.1
git push origin v1.2.1
A:
直接在 main 分支進行修復並標記正式版本:
git commit -m "hotfix: 修復爬蟲檔案下載失敗問題"
git tag v1.2.1
git push origin v1.2.1
本節內容提供給對技術架構有興趣的同事參考
GitHub Repository
↓ (程式碼推送/標籤)
GitHub Actions (CI 持續整合)
↓ (建構與推送)
GitHub Container Registry
↓ (映像檔拉取)
Watchtower (CD 持續部署) → Docker Containers
Git 操作 | 目標環境 | 映像檔標籤 |
---|---|---|
git push origin main |
開發環境 | development , dev-latest |
git push origin v1.2.0-rc.1 |
測試環境 | staging , v1.2.0-rc.1 |
git push origin v1.2.0 |
生產環境 | latest , production , v1.2.0 |
新的自動化部署流程讓我們能夠:
讓我們一起擁抱自動化,專注於創造價值!