stefafafan の fa は3つです

"すてにゃん" こと id:stefafafan のブログです

GitHub Actions から Google Cloud を使う際の gcloud バージョンを固定することにした

弊チームでは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 Documentationgcloud のアップデート情報が載っているので挙動の変化を感じたらみると良いですが、今回のような意図しないバグなどはここみてもわからないことがあります
    • その場合は Google Issue Tracker をみると何か他のユーザが書き込んでいるかもしれないので覚えておきましょう