CircleCIでCloud Runにデプロイする際、下記のOrbを使ったけどトリガー経由ではないので、コミットハッシュをCloud Build側で使うのがちょっとややこしかったのでメモ。
CircleCIから--substitutions を使って渡す必要がありました。
CircleCI Developer Hub - circleci/gcp-cloud-run
config.yml
version: 2.1
orbs:
gcp-cloud-run: circleci/gcp-cloud-run@1.0.2
// 省略
jobs:
deploy-server:
docker:
- image: 'cimg/base:stable'
steps:
- checkout
- gcp-cloud-run/init:
gcloud-service-key: GCLOUD_SERVICE_KEY
google-project-id: GOOGLE_PROJECT_ID
- gcp-cloud-run/build:
args: --substitutions=COMMIT_SHA=${CIRCLE_SHA1}
config: ./cloudbuild.yml
// 省略GCLOUD_SERVICE_KEY、GOOGLE_PROJECT_IDは環境変数。
モノレポ構成でDockerfileの場所を変えるためcloudbuild.ymlを使用しています。
上記の設定でCOMMIT_SHAを渡したのでCloud Build側で使えるようになっています。
cloudbulld.yml
steps:
- id: "build the container image"
name: "gcr.io/cloud-builders/docker"
args: ["build", "-t", "location-docker.pkg.dev/${PROJECT_ID}/api/image-name:${COMMIT_SHA}", "-f", "./Dockerfiles/api/Dockerfile", "."]
- id: "push container image"
name: "gcr.io/cloud-builders/docker"
args: ["push", "location-docker.pkg.dev/${PROJECT_ID}/api/image-name:${COMMIT_SHA}"]タグ名もArtifact Registryの設定よります。
https://cloud.google.com/artifact-registry?hl=ja
COMMIT_SHA以外を使いたい場合はこちら
https://cloud.google.com/build/docs/build-config-file-schema#substitutions