快速入门:自动操作

本页面介绍了如何使用 Cloud Build 自动执行构建。

Cloud Build 使用构建触发器来启用 CI/CD 自动化。您可以配置触发器以侦听传入的事件(例如,将新提交推送到代码库或者启动拉取请求时),然后在收到新事件时自动调用构建。

您将创建一个触发器,并配置相关触发器,以保证每次将更改推送到 GitHub 代码库时,系统都会调用构建。

准备工作

  1. 登录您的 Google Cloud 帐号。如果您是 Google Cloud 新手,请创建一个帐号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
  2. 在 Google Cloud Console 的项目选择器页面上,选择或创建一个 Google Cloud 项目。

    转到“项目选择器”

  3. 确保您的 Cloud 项目已启用结算功能。 了解如何确认您的项目是否已启用结算功能

  4. 启用 Cloud Build API。

    启用 API

  5. 安装并初始化 Cloud SDK
  6. 在 Google Cloud Console 的项目选择器页面上,选择或创建一个 Google Cloud 项目。

    转到“项目选择器”

  7. 确保您的 Cloud 项目已启用结算功能。 了解如何确认您的项目是否已启用结算功能

  8. 启用 Cloud Build API。

    启用 API

  9. 安装并初始化 Cloud SDK
  10. 如果您还没有帐号,请在 GitHub 上创建一个。

  11. 如果您在 GitHub 上设置了双重验证,请创建一个个人访问令牌,以代替通过命令行使用的 GitHub 密码。

创建示例 GitHub 代码库分支并克隆代码库

您需要一些用于构建的示例源代码。在本部分中,您将把 Go 中包含 Hello World 示例的一个现有源代码库克隆到自己的 GitHub 用户帐号中。
  1. 如果您还没有帐号,请在 GitHub 上创建一个。

  2. 如果您在 GitHub 上设置了双重验证,请创建一个个人访问令牌,以代替通过命令行使用的 GitHub 密码。

  3. cloud-build-samples 代码库创建一个到您自己的 GitHub 帐号的分支:

    1. 转到 Cloud Build cloud-build-samples 代码库

    2. 点击页面右上角的创建分支图标。

    3. 点击要将代码库分支到的 GitHub 用户帐号。

      您将自动重定向到包含 cloud-build-samples 代码库的分支版本的页面。

  4. 在本地环境中打开终端。

  5. 通过运行以下命令克隆分支代码库,其中 GITHUB_USERNAME 是您的 GitHub 帐号的用户名:

    git clone https://github.com/GITHUB_USERNAME/cloud-build-samples.git

将 Cloud Build 连接到您的代码库

如需使用触发器在 GitHub 上构建源代码,您必须先将 Cloud Build 连接到您的 GitHub 代码库。在本部分中,您需要将 cloud-build-samples 代码库连接到 Cloud Build。
  1. 在 Google Cloud Console 导航菜单中,点击 Cloud Build > 触发器

    打开“触发器”页面

  2. 选择您的项目,然后点击打开

  3. 点击连接代码库

  4. 选择源代码下,选择 GitHub(Cloud Build GitHub 应用)

  5. 点击继续

  6. 验证您的 GitHub 帐号。

  7. 选择代码库部分中,选择您的 GitHub 帐号的用户名。如果您的用户名未出现在列表中:

    1. GitHub 帐号列表中,点击 +添加

      您将看到一个弹出窗口,用于安装 Cloud Build GitHub 应用。

    2. 点击您的 GitHub 用户名。

    3. 点击仅某些代码库,在某些代码库上安装 Cloud Build GitHub 应用。

    4. 在下拉菜单中,选择 GITHUB_USERNAME/cloud-build-samples,其中 GITHUB_USERNAME 是您的 GitHub 帐号的用户名。

    5. 点击安装

      系统可能会先要求您输入与您的 GitHub 帐号关联的密码,然后再继续操作。

    6. 安装 Cloud Build GitHub 应用后,您现在可以在 GitHub 帐号字段的下拉菜单中看到您的用户名。选择您的用户名。

  8. 代码库下,选择 GITHUB_USERNAME/cloud-build-samples 作为您的代码库。

  9. 点击对勾标记,以同意有关触发器连接的条款及条件。

  10. 点击连接

  11. 点击完成

在下一部分中,您将创建一个触发器。

创建触发器

  1. 打开 Google Cloud Console 中的触发器页面:

    打开“触发器”页面

  2. 从页面顶部的项目选择器下拉菜单中选择您的项目。

  3. 点击打开

  4. 触发器页面中,点击创建触发器

  5. 创建触发器页面上,输入以下设置:

    • 名称:输入 hello-world-trigger 作为触发器的名称。

    • 事件:选择推送到分支作为代码库事件,以调用您的触发器。

    • 来源:选择 cloud-build-samples 代码库作为来源,其中包含您的源代码和构建配置文件。

    • 构建配置:选择 Cloud Build 配置文件作为您的构建配置文件。

    • Cloud Build 配置文件位置:将您的 Cloud Build 配置文件的路径指定为 quickstart-automate/cloudbuild.yaml

  6. 点击创建以保存您的构建触发器。

提交更改

在本部分中,您将提交对于克隆到您自己的 GitHub 帐号中的 cloud-build-samples 代码库所做的更改。

  1. 在终端中,导航到 quickstart-automate 目录:

    cd code-examples/quickstart-automate
  2. 打开 main.go 文件并将包含“Hello, world!”的行更新为“Hello, universe!”

              package main
    
              import (
                  "fmt"
              )
    
              func main() {
                  fmt.Println("Hello, universe!")
              }
       
  3. 查看“cloudbuild.yaml”,这是 Cloud Build 使用的构建配置文件。使用触发器调用构建时,此文件中的构建步骤会指示 Cloud Build 使用 Docker Hub 中的 golang 映像进行构建并运行 main.go 文件。

             steps:
             - name: golang
               args: ['go', 'run', 'quickstart-automate/main.go']
        
  4. 返回代码库的根目录:

       cd ..
  5. 运行以下命令,将您所做的更改提交到 GitHub:

        
        git add quickstart-automate/main.go
        git commit -m "update text"
        git push

    将代码推送到代码库时,系统可能会提示您输入凭据。如果看到系统提示,请输入您的用户名和密码或身份验证令牌。

您现在已将更改推送到您的代码库。您的推送将触发触发器的自动构建。

查看构建详情

在本部分中,您将查看提交更改后与您调用的构建相关联的构建详情。
  1. 在 Google Cloud Console 导航菜单中,点击 Cloud Build > 历史记录

    打开 Cloud Build 页面

  2. 选择您的项目,然后点击打开

    您将看到构建记录页面:

    自动操作的构建记录页面的屏幕截图

  3. 构建列中,点击构建的名称。

  4. 构建详情页面上,点击构建工件

    您将看到如下所示的输出:

    构建工件的屏幕截图

  5. 如需查看构建日志,请点击下载图标并查看下载的文件。

您已成功使用触发器调用了 Cloud Build 构建并查看了构建详情。

清理

为避免系统因本页中使用的资源向您的 Google Cloud 帐号收取费用,请按照以下步骤操作。

  1. 在 Google Cloud Console 导航菜单中,点击 Cloud Build > 触发器

    打开“触发器”页面

  2. 选择您的项目,然后点击打开

  3. hello-world-trigger 行中,点击该行右端的操作菜单(垂直省略号)。

  4. 选择删除

您现在已经删除了与克隆的代码库关联的触发器。

后续步骤