created: 2020-05-06T23:29:36.000Z
GCP の cloudbuild を ローカルで実行する
cloud-build-local
というツールがあり、公式のドキュメント通りにやればだいたいできる
作業ディレクトリ
ビルドを実施するディレクトリは cloudbuild.yaml があるディレクトリではない。cloudbuild はリポジトリの最上位のディレクトリをCWDとして実行されるので、ローカルで実行する際もパスの指定はそこに合わせておくのがよい
REVISION_ID
cloudbuild.yaml では $REVISION_ID
という変数が使えるようになっているが、ローカルビルドだとこれは使えない
--substitutions
で渡してやれば誤魔化すことができた
--substitutions REVISION_ID=buildlocal
dryrun
デフォルトだと dryrun=true
となっていて、cloudbuild.yaml ファイルの記述がルール通りかの構文チェックのみとなっている。実際にビルドやデプロイの処理をしたいときにはこれは dryrun=false
とする
コマンド
上記をふまえるとコマンドはこんな感じになった
$ cloud-build-local \
--dryrun=false \
--config=cloudbuild.yaml \
--substitutions REVISION_ID=buildlocal \
../