

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 运行 GitHub 拉取请求和 webhook 过滤器示例 CodeBuild
<a name="sample-github-pull-request"></a>

AWS CodeBuild 当源存储库为时，支持 webhook。 GitHub这意味着，对于源代码存储在存储 GitHub 库中的 CodeBuild 构建项目，每次将代码更改推送到存储库时，都可以使用 webhook 来重建源代码。有关 CodeBuild 示例，请参阅[AWS CodeBuild 示例](https://github.com/aws-samples/aws-codebuild-samples)。

**注意**  
使用 webhook 时，用户可能会触发意外构建。要降低这种风险，请参阅[使用 Webhook 的最佳实操](webhooks.md#webhook-best-practices)。

**Topics**
+ [

## 第 1 步：使用 GitHub 并启用 webhook 创建构建项目
](#sample-github-pull-request-running)
+ [

## 步骤 2：确认已启用 webhook
](#verification-checks)

## 第 1 步：使用 GitHub 并启用 webhook 创建构建项目
<a name="sample-github-pull-request-running"></a>

1. 在 [https://console.aws.amazon.com/codesuite/codebuild](https://console.aws.amazon.com/codesuite/codebuild/home) /home 中打开 AWS CodeBuild 控制台。

1.  如果显示 CodeBuild 信息页面，请选择 “**创建构建项目**”。否则，请在导航窗格中，展开**构建**，选择**构建项目**，然后选择**创建构建项目**。

1. 选择**创建构建项目**。

1. 在**项目配置**中：  
**项目名称**  
输入此构建项目的名称。每个 AWS 账户中的构建项目名称必须是唯一的。您还可以包含构建项目的可选描述，以帮助其他用户了解此项目的用途。

1. 在**源**中：  
**源提供商**  
选择 **GitHub**。按照说明进行连接（或重新连接）， GitHub 然后选择 “**授权**”。  
**存储库**  
**在我的 GitHub账户中选择 “存储库”**。  
**GitHub repository**  
输入 GitHub 存储库的 URL。

1. 在**主要源 webhook 事件**中，选择以下内容。
**注意**  
只有在上一步中选择了**我的 GitHub 账户中的 “存储库**” 时，“**主要来源 webhook 事件**” 部分才可见。

   1. 创建项目时，选择**每次将代码更改推送到此存储库时都会重新构建**。

   1. 从**事件类型**中，选择一个或多个事件。

   1. 要在事件触发构建时进行筛选，请在**在这些条件下开始构建**下，添加一个或多个可选筛选条件。

   1. 要在未触发事件时进行筛选，请在**在这些条件下不开始构建**下，添加一个或多个可选筛选条件。

   1. 选择**添加筛选条件组**，以添加另一个筛选条件组（如果需要）。

   有关 GitHub webhook 事件类型和过滤器的更多信息，请参阅[GitHub webhook 事件](github-webhook.md)。

1. 在**环境**中：  
**环境映像**  
选择下列选项之一：    
要使用由 AWS CodeBuild以下人员管理的 Docker 镜像，请执行以下操作：  
选择**托管映像**，然后选择**操作系统**、**运行时**、**映像**和**映像版本**。从**环境类型**中进行选择（如果可用）。  
要使用其他 Docker 映像：  
选择**自定义映像**。对于**环境类型**，请选择 **ARM**、**Linux**、**Linux GPU** 或 **Windows**。如果您针对**外部注册表 URL** 选择**其他注册表**，请使用 `docker repository/docker image name` 格式在 Docker Hub 中输入 Docker 映像的名称和标签。如果您选择 **Amazon ECR**，请使用 **Amazon ECR 存储库**和 **Amazon ECR 映像**在您的 AWS 账户中选择 Docker 映像。  
要使用私有 Docker 映像，请执行以下操作：  
选择**自定义映像**。对于**环境类型**，请选择 **ARM**、**Linux**、**Linux GPU** 或 **Windows**。对于**映像注册表**，选择**其他注册表**，然后输入您的私有 Docker 映像的凭证的 ARN。凭证必须由 Secrets Manager 创建。有关更多信息，请参阅[什么是 AWS Secrets Manager？](https://docs.aws.amazon.com/secretsmanager/latest/userguide/) 在《*AWS Secrets Manager 用户指南》*中。  
**服务角色**  
选择下列选项之一：  
   + 如果您没有 CodeBuild 服务角色，请选择 “**新建服务角色**”。在**角色名称**中，为新角色输入名称。
   + 如果您有 CodeBuild 服务角色，请选择**现有服务角色**。在**角色 ARN** 中，选择服务角色。
使用控制台创建或更新构建项目时，可以同时创建 CodeBuild 服务角色。默认情况下，这个角色仅能与该构建项目配合使用。如果您使用控制台将此服务角色与另一个构建项目关联，则此角色将更新以便与关联的构建项目结合使用。一个服务角色最多可与 10 个构建项目结合使用。

1. 在 **Buildspec** 中，执行以下操作之一：
   + 选择**使用 buildspec 文件**，以在源代码根目录中使用 buildspec.yml 文件。
   + 选择**插入构建命令**，以使用控制台插入构建命令。

   有关更多信息，请参阅[Buildspec 参考](build-spec-ref.md)。

1. 在**构件**中：  
**类型**  
选择下列选项之一：  
   + 如果您不想创建构建输出构件，请选择**无构件**。
   + 要将构建输出存储在 S3 存储桶中，请选择 **Amazon S3**，然后执行以下操作：
     + 如果要将项目名称用于构建输出 ZIP 文件或文件夹，请将**名称**留空。否则，请输入名称。默认情况下，构件名称是项目名称。如果您要使用其他名称，请在构件名称框中输入该名称。如果您要输出 ZIP 文件，请包含 zip 扩展名。
     + 对于**存储桶名称**，请选择输出存储桶的名称。
     + 如果您在此过程的前面部分选择了**插入构建命令**，对于**输出文件**，请输入构建（该构建要放到构建输出 ZIP 文件或文件夹中）中的文件位置。对于多个位置，使用逗号将各个位置隔开（例如，`appspec.yml, target/my-app.jar`）。有关更多信息，请参阅 [buildspec 语法](build-spec-ref.md#build-spec-ref-syntax)中 `files` 的描述。  
**其他配置**  
展开**其他配置**并根据需要设置选项。

1. 选择 **Create build project（创建构建项目）**。在**审核**页面上，选择**开始构建**以运行构建。

## 步骤 2：确认已启用 webhook
<a name="verification-checks"></a>

1. 在 [https://console.aws.amazon.com/codesuite/codebuild](https://console.aws.amazon.com/codesuite/codebuild/home) /home 中打开 AWS CodeBuild 控制台。

1. 在导航窗格中，选择**构建项目**。

1. 请执行以下操作之一：
   + 选择带有要验证的 Webhook 的构建项目的链接，然后选择**构建详细信息**。
   + 选择带有要验证的 Webhook 的构建项目旁边的按钮，选择**查看详细信息**，然后选择**构建详细信息**选项卡。

1. 在**主要源 Webhook 事件**中，选择 **Webhook** URL 链接。

1. 在存储 GitHub 库中，在 **“设置”** 页面的 “**Webhooks**” 下，确认已选中 “**拉取请求**和**推送**”。

1. **在您的个人 GitHub 资料设置中，在 **“个人设置”、“ OAuth****应用程序”、“授权应用程序**” 下，您应该看到您的应用程序已被授权访问您选择的 AWS 区域。**