GitHubのGoogle Cloud Build 統合cloudbuild.yaml
またはがDockerfile
リポジトリのルートにない場合は検出されません。
複数の を含むモノレポジトリを使用する場合cloudbuild.yamls
、正しい を検出するように GitHub の Google Cloud Build 統合を構成するにはどうすればよいでしょうかcloudbuild.yaml
?
ファイルパス:
services/api/cloudbuild.yaml
services/nginx/cloudbuild.yaml
services/websocket/cloudbuild.yaml
Cloud Build 統合出力:
ベストアンサー1
cloudbuild.yaml
リポジトリのルートに を 1 つの手順で追加するだけで、これを実行できますgcr.io/cloud-builders/gcloud
。この手順では次の操作を行います。
- 各サブディレクトリを走査するか、追加のファイル
find
を見つけるために使用します。cloudbuild.yaml
- 見つかった各 について
cloudbuild.yaml
、 を実行してビルドをフォークして送信しますgcloud builds submit
。 - フォークされたすべてのコマンドが完了するまで待ちます
gcloud
。
これを実現する良い例がその根cloudbuild.yaml
内でレポGoogleCloudPlatform/cloud-builders-community
。
重要でない部分を取り除くと、基本的には次のようになります。
steps:
- name: 'gcr.io/cloud-builders/gcloud'
entrypoint: 'bash'
args:
- '-c'
- |
for d in */; do
config="${d}cloudbuild.yaml"
if [[ ! -f "${config}" ]]; then
continue
fi
echo "Building $d ... "
(
gcloud builds submit $d --config=${config}
) &
done
wait