Google Cloud Container BuilderでGitHubのリポジトリを参照していて
ブランチpushのトリガーでビルドをしようとした時に
何回pushしても反応しなくてハマったのでメモ
直接的な原因
- GitHubにwebhookが設定されないことが直接的な原因
解決策
- ContainerBuilderでGitHubと連携する場合、CloudSourceRepositoryにミラーリポジトリができているので
接続解除
してからトリガー
を作り直す- そうすると、CloudSourceRepositoryに新しくミラーリポジトリができて、webhookがGitHubのリポジトリに設定される
-
https://source.developers.google.com/webhook/github?id=xxx&project=xxxx
みたいなwebhookが設定されていればOK
発生した経緯
- 以前、ContainerBuilderをためそうとしてトリガーを作ったことがあった
- この時点では問題があって、見送った
- その後、リポジトリを整理していて、不要なwebhookを消した
この時CloudSourceRepositoryへの通知用のwebhookも消してしまった
- GCP側はそんなこと知らないので、ひたすらwebhookで通知が来るのを待っている…
- でも、webhookは消えているので永遠に通知はされない
- ContainerBuilderのトリガーを作り直しても、CloudSourceRepositoryにミラーリポジトリは既にあるので、作り直したりはしない
- 故に、webhookも再設定されない
余談
- CloudContainerBuilder、割と速くて、ビルド用のマシンタイプも選べて良い
- 外部への通知はPub/Subを介してCloudFunctionとかで自前で実装する必要がある
- カスタマイズが自由で良い分、面倒でもある