自动化 gcloud 组件更新

Automate gcloud components update

如何在 shell 脚本中以编程方式更新 gcloud components

调用 gcloud components update 需要用户输入,例如:

$ gcloud components update

The following components will be installed:
--------------------------------------------
| kubectl (Linux, x86_64) | 1.0.1 | 4.5 MB |
--------------------------------------------

For the latest release notes, please visit:
  https://dl.google.com/dl/cloudsdk/release/RELEASE_NOTES
Do you want to continue (Y/n)? 

我找不到 gcloud 强制更新的参数。

您正在寻找 --quiet 标志。

来自gcloud --help

 --quiet, -q
    Disable all interactive prompts when running gcloud commands. If input
    is required, defaults will be used, or an error will be raised.

这通常是您需要用于非交互式上下文的标志。

您还可以将 CLOUDSDK_CORE_DISABLE_PROMPTS 环境变量设置为非空值:

export CLOUDSDK_CORE_DISABLE_PROMPTS=1
gcloud components update # This works for all gcloud commands

如果您在持续集成 (CI) 服务器上 运行 使用 gcloud 命令时遇到此问题,您可以尝试的一件事是 运行 使用 Docker 已经包含您需要的组件的图像。因此,您可以避免更新 gcloud 组件。

例如,如果您尝试 运行 gcloud beta firebase test android run,您可以使用 image: google/cloud-sdk:latest,因为在 https://github.com/GoogleCloudPlatform/cloud-sdk-docker 它显示:最新包含 gcloud Beta 命令。

我在托管 CI (.gitlab-ci.yml) 的 Gitlab 上测试了这个并且它有效。