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