CI 持續整合
(1)專案程式碼提交 (commit → push / merge)
(2)Build、單元測試、整合測試、程式碼規範檢查
CD 持續交付
(3)完成程式碼部署、營運、監控
避免版本衝突
降低人為操作失誤
減少人工時間花費
及早發現(bug)及早修正(fix)
專注開發提高生產力
加速產品迭代
是一項在 Google Cloud 基礎架構上執行建置的服務。
可從 Cloud Storage、Cloud Source Repositories、GitLab、GitHub 或 Bitbucket 匯入原始程式碼。
根據您的規範執行構建,並產生 Docker 容器或 Java 存檔等工件。
用於管理私有套件和 Docker 容器映像的存放區
2024/5/15後,已棄用,新專案無法再推送
2025/3/18後,將關閉
可依照定義的升級順序自動將應用程式交付到一系列目標環境。
達到持續交付。
託管在 Google Cloud 的 Git儲存庫
這邊會使用 Cloud Build 構建 Docker image 並將 image 推送到 GAR。
2.Dockerfile
有兩種方式1.直接透過指令執行、2.透過cloudbuild.yaml檔案執行
這邊使用第2種,所以需建立cloudbuild.yaml
使用觸發條件連結 github 自動 CI
github建立新的repo,git clone到本地端,放入自己的專案
並建立Dockerfile、cloudbuild.yaml 兩份檔案
Dockerfile
cloudbuild.yaml
版本紀錄可查看觸發條件名稱
將應用程式部署至GKE
skaffold.yaml
k8s-pod.yaml
clouddeploy.yaml
指令
成功訊息
使用ui
使用指令
Deploy成功會變成綠色
一個以上目標示意圖
A. 先在Source Repositories建立存放區,再建立觸發條件時,存放區版本第1代中可直接選擇Cloud Source Repositories,不用連結新的存放區
A.
方法一、cloudbuild.yaml image的tag改代變數 $SHORT_SHA'
會自動帶入 COMMIT_SHA 前7個字符
( 還有其他方法會再補充上來 )
A.使用 skaffold.yaml 設定變數可以區分環境
( 待補充設定方式 )
Cloud Build
https://cloud.google.com/build/docs/build-push-docker-image
Cloud Deploy
https://cloud.google.com/deploy/docs/overview
build trigger
https://cloud.google.com/build/docs/automating-builds/create-manage-triggers#build_trigger
Build and Deploy apps with CI/CD
https://cloud.google.com/build/docs