GCP 裡面有一個服務叫 Cloud Build
,它可以幫你做持續建構、測試和部署,你可以把它想像成一個簡易版的 Jenkins,更棒的是它也完美整合了 GKE,從整個映像檔打包到部署上去,只是幾分鐘的時間而已,而且官方已經內建了許多指令,如果不夠的話,也可以往社群的部分找找。
https://cloud.google.com/cloud-build/
費用定價
每天前 120 分鐘建構時間免費,超出的部分每分鐘 0.003 美元
- name: 'gcr.io/cloud-builders/npm'
id: api-test
args: ['test']
npm test
。這個建構會首先會先跑 npm test
指令做測試,然後接著,透過 docker 指令打包映像檔,最後再將映像檔上傳至 Container Registry。
steps:
# 測試
- name: 'gcr.io/cloud-builders/npm'
id: api-test
args: ['test']
# 編譯映像檔
- name: 'gcr.io/cloud-builders/docker'
id: api-build
env: ['NODE_ENV=$_NODE_ENV']
args:
- 'build'
- '-f'
- 'docker/api-server.Dockerfile'
- '--build-arg'
- 'NODE_ENV=$_NODE_ENV'
- '-t'
- 'gcr.io/$PROJECT_ID/api-server:ci-$_NODE_ENV-$SHORT_SHA'
- '.'
# 上傳映像檔
- name: 'gcr.io/cloud-builders/docker'
id: api-push
args:
- 'push'
- 'gcr.io/$PROJECT_ID/api-server:ci-$_NODE_ENV-$SHORT_SHA'