GitHub的拉取请求和 Webhook 筛选条件示例CodeBuild - AWS CodeBuild
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

GitHub的拉取请求和 Webhook 筛选条件示例CodeBuild

当源存储库为 AWS CodeBuild 时,GitHub 支持 Webhook。 这意味着,对于将源代码存储在 CodeBuild 存储库中的 GitHub 构建项目,Webhook 可用于在每次将代码更改推送到该存储库时重建源代码。

注意

我们建议您使用筛选条件组指定哪些 GitHub 用户可以在公共存储库中触发构建。这可以防止用户触发意外的构建。有关更多信息,请参阅GitHub Webhook 事件

创建将 GitHub 作为源存储库的构建项目并启用 Webhook(控制台)

  1. Open the AWS CodeBuild console at https://console.amazonaws.cn/codesuite/codebuild/home.

  2. If a CodeBuild information page is displayed, choose Create build project. Otherwise, on the navigation pane, expand Build, choose Build projects, and then choose Create build project.

  3. 选择 Create build project (创建构建项目)

  4. Project configuration (项目配置) 中:

    项目名称

    输入此构建项目的名称。构建项目名称在您的各个 AWS 账户内必须是唯一的。您还可以包含构建项目的可选描述,以帮助其他用户了解此项目的用途。

  5. Source (源) 中:

    源提供商

    选择 GitHub。 按照说明与 GitHub 连接(或重新连接),然后选择 Authorize (授权)

    Repository

    选择 Repository in my GitHub account (我的 AWS 账户中的存储库)

    GitHub 存储库

    输入 GitHub 存储库的 URL。

  6. Primary source webhook events (主要源 Webhook 事件) 中,选择以下内容。仅当您在上一步中选择 Repository in my GitHub account (我的 AWS 账户中的存储库) 时,此部分才可用。

    1. 创建项目时,选择 Rebuild every time a code change is pushed to this repository (每次将代码更改推送到此存储库时都会重新生成)

    2. Event type (事件类型) 中,选择一个或多个事件。

    3. 要在事件触发构建时进行筛选,请在 Start a build under these conditions (在这些条件下启动构建) 下,添加一个或多个可选筛选条件。

    4. 要在未触发事件时进行筛选,请在 Start a build under these conditions (在这些条件下不启动构建) 下,添加一个或多个可选筛选条件。

    5. 选择 Add filter group (添加筛选条件组) 以添加另一个筛选条件组(如果需要)。

  7. Environment (环境) 中:

    环境映像

    选择以下选项之一:

    要使用由 AWS CodeBuild 管理的 Docker 映像,请执行以下操作:

    选择 Managed image (托管映像),然后从 Operating system (操作系统)Runtime(s) (运行时)Image (映像)Image version (映像版本) 中进行选择。从 Environment type (环境类型) 中进行选择(如果可用)。

    要使用另一个 Docker 映像,请执行以下操作:

    选择 Custom image (自定义映像)。对于 Environment type (环境类型),选择 ARMLinuxLinux GPUWindows。如果您选择 Other registry (其他注册表),则对于 External registry URL (外部注册表 URL),请使用格式 docker repository/docker image name 输入 Docker Hub 中 Docker 映像的名称和标签。 如果您选择 Amazon ECR,请使用 Amazon ECR 存储库Amazon ECR 映像在 AWS 账户中选择 Docker 映像。

    要使用私有 Docker 映像,请执行以下操作:

    选择 Custom image (自定义映像)。对于 Environment type (环境类型),选择 ARMLinuxLinux GPUWindows。对于 Image registry (映像注册表),选择 Other registry (其他注册表),然后输入您的私有 Docker 映像的凭证的 ARN。凭证必须由 Secrets Manager 创建。有关更多信息,请参阅 AWS Secrets Manager 用户指南 中的什么是 AWS Secrets Manager?

    服务 角色

    选择以下选项之一:

    • 如果您没有 CodeBuild 服务角色,请选择 New service role (新建服务角色)。在 Role name 中,为新角色输入名称。

    • 如果您有 CodeBuild 服务角色,请选择 Existing service role (现有服务角色)。在 Role ARN (角色 ARN) 中,选择服务角色。

    注意

    当您使用控制台来创建或更新构建项目时,您可以同时创建 CodeBuild 服务角色。默认情况下,这个角色仅能与该构建项目配合使用。如果您使用控制台将此服务角色与另一个构建项目关联,则此角色将更新以便与关联的构建项目结合使用。一个服务角色最多可与 10 个构建项目结合使用。

  8. 构建规范中,执行以下操作之一:

    • 选择 Use a buildspec file (使用 buildspec 文件) 以在源代码根目录中使用 buildspec.yml 文件。

    • 选择 Insert build commands (插入构建命令) 以使用控制台插入构建命令。

    有关更多信息,请参见 构建规范参考

  9. Artifacts (构件) 中:

    Type

    选择以下选项之一:

    • 如果您不想创建构建输出项目,请选择 No artifacts (无构件)

    • 要将构建输出存储在 S3 存储桶中,请选择 Amazon S3,然后执行以下操作:

      • 如果要将项目名称用于构建输出 ZIP 文件或文件夹,请将 Name (名称) 留空。否则,请输入名称。默认情况下,构件名称是项目名称。如果您要使用其他名称,请在构件名称框中输入该名称。如果您要输出 ZIP 文件,请包含 zip 扩展名。

      • 对于 Bucket name (存储桶名称),请选择输出存储桶的名称。

      • 如果您在此过程的前面部分选择了 Insert build commands (插入构建命令),对于 Output files (输出文件),请输入构建(该构建要放到构建输出 ZIP 文件或文件夹中)中的文件位置。对于多个位置,使用逗号分开各个位置(例如 appspec.yml, target/my-app.jar)。有关更多信息,请参阅 构建规范语法files 的描述。

    其他配置

    展开 Additional configuration (其他配置) 并根据需要设置选项。

  10. 选择 Create build project (创建构建项目)。在 Review (审核) 页面上,选择 Start build (启动构建) 以运行构建。

验证检查

  1. Open the AWS CodeBuild console at https://console.amazonaws.cn/codesuite/codebuild/home.

  2. 在导航窗格中,选择 Build projects

  3. 执行下列操作之一:

    • 选择带有要验证的 Webhook 的构建项目的链接,然后选择 Build details (构建详细信息)

    • 选择带有要验证的 Webhook 的构建项目旁边的按钮,选择 View details (查看详细信息),然后选择 Build details (构建详细信息) 选项卡。

  4. Primary source webhook events (主要源 Webhook 事件) 中,选择 Webhook URL 链接。

  5. 在您的 GitHub 存储库中,在 Settings (设置) 页面上的 Webhooks 下,验证是否已选择 Pull Requests (拉取请求)Pushes (推送)

  6. 在您的 GitHub 配置文件设置中,在 Personal settings (个人设置)Applications (应用程序)Authorized OAuth Apps (已授权 Apps)AWS 下,您应该会看到应用程序已被授权访问您选择的 区域。