試想日常工作中
執行 Script 去做 打包
測試
更新 package 版本號
git push 到遠端 Repo
連線至遠端主機作部署
諸如此類的動作一天可能會重複好幾次
或是 太久沒做忘光光
Continuous Integration
持續整合Continuous Deployment
持續部署
廣義來說,CI/CD 類似於上面說的那一系列動作 (打包、測試、部署...等)
圖摘自What is CI/CD Pipeline?
從程式碼 commit
開始,會經過 Build
Testing
Staging
Production
這些過程
可以做一條管線,從 commit 的程式碼開始,後續的動作都透過 Pipeline 設置好的流程,一個一個執行
如果中間哪個步驟失敗了,也可以提醒開發者
(先不討論 Jenkins
circleci
Bamboo
這些 CI/CD Tools)
可以先根據使用的 Git Server 選擇
GitHub 有 GitHub Actions
BitBucket 有 Bitbucket Pipelines
GitLab 有 CI/CD
圖修改自: GitHub vs Bitbucket vs GitLab: Which is the Best Version Control System for you?
這些程式碼託管平台,都有整合 CI/CD 的服務
不用再去煩惱要選擇哪一套 CI/CD 工具
是這次想分享的巨人主角
圖修改自: Top 10 BEST Build Automation Tools To Speed Up Deployment Process
當放在 Bitbucket 上的程式碼有異動時,Bitbucket Pipelines 會去讀取相關設定檔(bitbucket-pipelines.yml),可以根據不同的 branch 或是 tags 去執行不同的 step。
待續...
What is CI/CD?
Build, test, and deploy with Pipelines