setup-gcloud
GitHub 操作在 GitHub Actions 环境中配置 Google Cloud SDK。 Google Cloud SDK 包括 gcloud 和 gsutil 二进制文件。
或者与其他 Google Cloud GitHub Actions 原生集成:
这不是 Google 官方支持的产品,并且不在 Google Cloud 支持合同的涵盖范围内。要报告 Google Cloud 产品中的错误或请求功能,请联系 Google Cloud 支持。
此操作需要 Google Cloud 凭据才能执行 gcloud 命令。有关更多详细信息,请参阅授权。
此操作使用 Node 20 运行。如果您使用自托管 GitHub Actions 运行器,则必须使用支持此版本或更高版本的运行器版本。
jobs :
job_id :
# Add "id-token" with the intended permissions.
permissions :
contents : ' read '
id-token : ' write '
steps :
- id : ' auth '
uses : ' google-github-actions/auth@v2 '
with :
workload_identity_provider : ' projects/123456789/locations/global/workloadIdentityPools/my-pool/providers/my-provider '
service_account : ' [email protected] '
- name : ' Set up Cloud SDK '
uses : ' google-github-actions/setup-gcloud@v2 '
with :
version : ' >= 363.0.0 '
- name : ' Use gcloud CLI '
run : ' gcloud info '
version
:(可选,默认值: latest
)表示要安装的 Cloud SDK ( gcloud
) 版本或版本限制的字符串(例如"290.0.1"
或">= 197.0.1"
)。默认值为"latest"
,它将始终下载并安装最新的可用 Cloud SDK 版本。
- uses: 'google-github-actions/setup-gcloud@v2'
with:
version: '>= 416.0.0'
如果没有安装与给定约束匹配的gcloud
版本,此 GitHub 操作将下载并安装仍与该约束匹配的最新可用版本。
通过工作负载联合身份验证需要版本 363.0.0 或更高版本。如果您需要工作负载联合身份验证的支持,请指定您的版本约束,如下所示:
- uses: 'google-github-actions/setup-gcloud@v2'
with:
version: '>= 363.0.0'
您有责任确保gcloud
版本与所需的功能和组件相匹配。
project_id
:(可选) Google Cloud 项目的 ID。如果提供,这将配置 gcloud 默认情况下使用此项目 ID 来执行命令。单个命令仍然可以使用优先的--project
标志来覆盖项目。如果未指定,该操作将尝试通过查看其他输入和环境变量来查找“最佳”项目 ID。
install_components
:(可选)要安装的其他 gcloud 组件列表,指定为以逗号分隔的字符串列表:
install_components: 'alpha,cloud-datastore-emulator'
skip_install
:(可选)跳过 gcloud 的安装并使用系统提供的版本。如果指定,则忽略version
输入。
version
:安装的 gcloud 版本。 setup-gcloud
操作会安装 Cloud SDK ( gcloud
)。要配置其对 Google Cloud 的身份验证,您必须首先使用 google-github-actions/auth 操作。 auth
操作设置应用程序默认凭据,然后setup-gcloud
操作引用这些凭据来配置 gcloud 凭据 。您可以通过以下选项进行身份验证:
bq
和gsutil
工具进行身份验证。
jobs :
job_id :
# Add "id-token" with the intended permissions.
permissions :
contents : ' read '
id-token : ' write '
steps :
- id : ' auth '
uses : ' google-github-actions/auth@v2 '
with :
workload_identity_provider : ' projects/123456789/locations/global/workloadIdentityPools/my-pool/providers/my-provider '
service_account : ' [email protected] '
- name : ' Set up Cloud SDK '
uses : ' google-github-actions/setup-gcloud@v2 '
- name : ' Use gcloud CLI '
run : ' gcloud info '
jobs :
job_id :
steps :
- id : ' auth '
uses : ' google-github-actions/auth@v2 '
with :
credentials_json : ' ${{ secrets.GCP_CREDENTIALS }} '
- name : ' Set up Cloud SDK '
uses : ' google-github-actions/setup-gcloud@v2 '
- name : ' Use gcloud CLI '
run : ' gcloud info '
如果您使用的是在 Google Cloud Platform 上托管的自托管运行器,则会从附加到运行器的服务帐户自动获取凭据。在这种情况下,您不需要运行 google-github-actions/auth 操作。
jobs :
job_id :
steps :
- name : ' Set up Cloud SDK '
uses : ' google-github-actions/setup-gcloud@v2 '
- name : ' Use gcloud CLI '
run : ' gcloud info '
要使用多个服务帐户,在使用setup-gcloud
之前需要执行第二个身份验证步骤来更新凭据:
jobs :
job_id :
# Add "id-token" with the intended permissions.
permissions :
contents : ' read '
id-token : ' write '
steps :
- id : ' auth service account 1 '
uses : ' google-github-actions/auth@v2 '
with :
workload_identity_provider : ' projects/123456789/locations/global/workloadIdentityPools/my-pool/providers/my-provider '
service_account : ' [email protected] '
- name : ' Set up Cloud SDK '
uses : ' google-github-actions/setup-gcloud@v2 '
- name : ' Use gcloud CLI '
run : ' gcloud auth list --filter=status:ACTIVE --format="value(account)" '
# [email protected]
- id : ' auth service account 2 '
uses : ' google-github-actions/auth@v2 '
with :
credentials_json : ' ${{ secrets.GCP_CREDENTIALS }} '
- name : ' Set up Cloud SDK '
uses : ' google-github-actions/setup-gcloud@v2 '
- name : ' Use gcloud CLI '
run : ' gcloud auth list --filter=status:ACTIVE --format="value(account)" '
# [email protected]
我们建议固定到最新的可用主要版本:
- uses : ' google-github-actions/setup-gcloud@v2 '
虽然此操作试图遵循语义版本控制,但我们终究是人类,有时会犯错误。为了防止意外的重大更改,您还可以固定到特定版本:
- uses : ' google-github-actions/[email protected] '
但是,如果不明确更新版本号,您将无法获得自动安全更新或新功能。请注意,我们仅发布MAJOR
和MAJOR.MINOR.PATCH
版本。 MAJOR.MINOR
没有浮动别名。