GeekFactory

int128.hatenablog.com

Cloud Buildで任意のシェルスクリプトを実行する

Google Cloud Buildでは公式のイメージが数多く提供されており、コマンドに対応するイメージを指定する形になっている。例えば、gcloud コマンドを使いたい場合は以下のように gcr.io/cloud-builders/gcloud イメージを指定すればよい。

steps:
  - name: gcr.io/cloud-builders/gcloud
    args:
      - app
      - deploy

このように基本的な操作を行う場合はとてもシンプルに記述できるが、条件分岐や文字列置換などの複雑な操作はサポートされていない。そのような複雑な操作を行いたい場合はbashシェルスクリプトを実行すればよい。

例えば、以下のように entrypoint を記述すると bash -c を経由してシェルスクリプトを実行できる。

steps:
  - name: gcr.io/cloud-builders/gcloud
    env:
      - TAG_NAME=$TAG_NAME
    entrypoint: bash
    args:
      - -c
      - |
        gcloud app deploy --version="${TAG_NAME//./-}"

この例では、タグ名のピリオドをハイフンに置換した上で、App Engineにアプリケーションをデプロイしている。Cloud BuildのYAMLではサポートされていない文字列置換を使いたい場合はbashを利用すればよい。

See Also