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を利用すればよい。