使用 Cloud Build 从 Git 代码库部署工作流

您可以使用 Cloud Build 构建触发器自动启动构建并从 Git 代码库部署工作流。您可以将触发器配置为在源代码库发生任何更改时部署工作流,或仅在更改符合特定条件时部署工作流。

这种方法有助于您管理部署生命周期。例如,您可以将更改部署到预演环境中的工作流,针对该环境运行测试,然后逐步将这些更改推广到生产环境。

准备工作

这些说明假定您在 Google Cloud 项目中拥有 Cloud Build Editor 角色 (roles/cloudbuild.builds.editor),以便您可以创建触发器。您还需要源代码库(例如 GitHub 或 Bitbucket)中的工作流。

控制台

  1. 启用 Cloud Build 和 Workflows API。

    启用 API

  2. Workflows Admin 角色 (roles/workflows.admin) 授予 Cloud Build 服务账号:

    1. 在 Google Cloud 控制台中,前往 IAM 页面。

      进入 IAM

    2. 选择您的项目。

    3. 在 Cloud Build 服务账号 (PROJECT_NUMBER@cloudbuild.gserviceaccount.com) 对应的行中,点击 修改主账号

    4. 点击添加其他角色

    5. 角色列表中,选择 Workflows Admin 角色。

    6. 点击保存

  3. 向 Cloud Build 服务账号授予 Compute Engine 默认服务账号的 Service Account User 角色 (roles/iam.serviceAccountUser)。如果您已启用 Compute Engine API,则 Compute Engine 默认服务账号为 PROJECT_NUMBER-compute@developer.gserviceaccount.com

    1. 在 Google Cloud 控制台中,前往服务账号页面。

      转到“服务账号”

    2. 选择您的项目。

    3. 点击 Compute Engine 默认服务账号 (PROJECT_NUMBER-compute@developer.gserviceaccount.com) 的电子邮件地址。

    4. 点击权限标签页。

    5. 点击 授予访问权限按钮。

    6. 如需添加新的主账号,请输入服务账号的电子邮件地址 (SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com)。

    7. 选择角色列表中,选择服务账号 > Service Account User 角色。

    8. 点击保存

gcloud

  1. 启用 Cloud Build 和 Workflows API。

    gcloud services enable cloudbuild.googleapis.com \
      workflows.googleapis.com
    
  2. Workflows Admin 角色 (roles/workflows.admin) 授予 Cloud Build 服务账号:

    PROJECT_NUMBER=$(gcloud projects describe PROJECT_ID --format='value(projectNumber)')
    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member=serviceAccount:$PROJECT_NUMBER@cloudbuild.gserviceaccount.com \
      --role=roles/workflows.admin
    

    PROJECT_ID 替换为您的 Google Cloud项目的 ID。

  3. 向 Cloud Build 服务账号授予 Compute Engine 默认服务账号的 Service Account User 角色 (roles/iam.serviceAccountUser)。如果您已启用 Compute Engine API,则 Compute Engine 默认服务账号为 PROJECT_NUMBER-compute@developer.gserviceaccount.com

    gcloud iam service-accounts add-iam-policy-binding \
      $PROJECT_NUMBER-compute@developer.gserviceaccount.com \
      --member=serviceAccount:$PROJECT_NUMBER@cloudbuild.gserviceaccount.com \
      --role=roles/iam.serviceAccountUser
    

连接到源代码库

您必须将 Cloud Build 连接到源代码库,以便 Cloud Build 可以自动执行构建,以响应代码库中发生的事件。

如需连接到 GitHub 或 Bitbucket,请完成以下步骤:

  1. 在 Google Cloud 控制台中,前往 Cloud Build 触发器页面:

    转到“触发器”

  2. 如有必要,请选择您的项目,然后点击打开

  3. 区域列表中,选择您要创建触发器的区域。

  4. 点击连接代码库

  5. 选择您已在其中存储源代码的源代码库。

    例如:GitHub(Cloud Build GitHub 应用)

  6. 点击继续

  7. 使用您的用户名和密码向您的源代码库进行身份验证。

    如果您要登录 GitHub,系统会要求您授权 Google Cloud Build GitHub 应用访问您的 GitHub 账号,然后才能继续操作。