弊チームではGitHub ActionsからGoogle Cloud Runにアプリケーションをデプロイしてプレビュー環境として利用しています。具体的な構成などについては以下の記事をご参照ください。
developer.hatenastaff.com
先日、内部で使われているGoogle CloudのCLI gcloud
のバージョンが上がったことによりこの環境が正常に動かなくなって困った事例があったので、今回これを機にバージョンを固定することにしました。
gcloud のバージョンが上がってどのように壊れたのか
445.0.0 (2023-09-06)
から 446.0.0 (2023-09-12)
に上がった結果以下の Issue Tracker にあるような挙動の変化がありました。
https://issuetracker.google.com/issues/300221542
弊チームではCloud Runのリビジョンタグを使って、ブランチごとのプレビュー環境を実現していますが、この日から突然さまざまなブランチの環境が最新のリビジョンに向くようになり、環境が正常に動かなくなりました。
翌朝確認すると 446.0.1 (2023-09-14)
のバージョンがリリースされこの不具合は修正されて事なきを得ましたが、それでも突然環境が壊れた当日は原因の切り分けがすぐにできなくて時間をとられてしまいました。
cloud.google.com
google-github-actions/setup-gcloud で利用する gcloud のバージョン固定
GitHub Actionsで gcloud
をセットアップする際は google-github-actions/setup-gcloud というActionを使うと楽です。元々Action自体のメジャーバージョンしか固定していなかったので、以下のように2行足して内部で利用している gcloud
のバージョンも固定することにしました。
- name: Setup Cloud SDK uses: google-github-actions/setup-gcloud@v1 + with: + version: "446.0.1"
まとめ
google-github-actions/setup-gcloud
を使うと便利にGitHub Actionsからgcloud
が使えるけど Action そのもののpinの他に内部で使っているgcloud
のpinもすると良いかもしれません- Google Cloud CLI - Release Notes | Google Cloud CLI Documentation に
gcloud
のアップデート情報が載っているので挙動の変化を感じたらみると良いですが、今回のような意図しないバグなどはここみてもわからないことがあります- その場合は Google Issue Tracker をみると何か他のユーザが書き込んでいるかもしれないので覚えておきましょう