TypeScriptで書いたCloud FunctionsをCloud Buildでビルド&デプロイする際の設定

何?

Cloud FunctionsをTypeScriptで書き、かつデプロイを自動化したい人向けの情報

前提

Cloud FunctionsをCloud Buildでデプロイする方法については id:selmertsx が以下のエントリで詳しく書いてくれている

selmertsx.hatenablog.com

TypeScriptで書いたコードをビルドしてからデプロイするための設定

cloudbuild.yaml

steps:
  - name: 'gcr.io/cloud-builders/npm'
    args: ['install']
  - name: 'gcr.io/cloud-builders/npm'
    args: ['run', 'build']
  - name: 'gcr.io/cloud-builders/gcloud'
    args:
    - beta
    - functions
    - deploy
    - test
    - --entry-point=test
    - --trigger-http
    - --stage-bucket=${_BUCKET_NAME}
substitutions:
    _BUCKET_NAME: your-bucket

—stage-bucket に渡すbucket名はデフォルトではsubstitutionsに設定した値になるが、Cloud Buildのトリガーに代入変数が設定されていればそちらが使われる。