

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

# 使用以下方法制作徽章示例 CodeBuild
<a name="sample-build-badges"></a>

AWS CodeBuild 现在支持使用构建徽章，它提供可嵌入的、动态生成的图像（*徽章*），用于显示项目最新版本的状态。可通过为您的 CodeBuild 项目生成的公开网址访问此图片。这允许任何人查看 CodeBuild 项目的状态。构建徽章不包含任何安全信息，因此它们无需身份验证。

**Topics**
+ [创建具有构建徽章的构建项目](#sample-build-badges-request-running)
+ [访问 AWS CodeBuild 构建徽章](access-badges.md)
+ [发布 CodeBuild 构建徽章](publish-badges.md)
+ [CodeBuild 徽章状态](badge-statuses.md)

## 创建具有构建徽章的构建项目
<a name="sample-build-badges-request-running"></a>

使用以下过程之一创建已启用构建徽章的构建项目。你可以使用 AWS CLI 或 AWS 管理控制台.

**创建已启用构建徽章的构建项目（AWS CLI）**
+ 有关创建构建项目的信息，请参阅[创建构建项目 (AWS CLI)](create-project.md#create-project-cli)。要在 AWS CodeBuild 项目中包含构建徽章，必须使用值*badgeEnabled*进行指定。`true`

**创建已启用构建徽章的构建项目（控制台）**

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

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

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

1. 在**源**中，对于**源提供商**，选择源代码提供商类型，然后执行以下操作之一：
**注意**  
 CodeBuild 不支持使用 Amazon S3 源代码提供商的构建徽章。由于 AWS CodePipeline 使用 Amazon S3 进行项目传输，因此在中创建的管道中的 CodePipeline构建项目不支持构建徽章。
   + 如果您选择了 **CodeCommit**，那么对于 **Repository (存储库)**，请选择存储库的名称。选择**启用构建徽章**，以使您的项目的构建状态可见且可嵌入。
   + 如果您选择 **GitHub**，请按照说明进行连接（或重新连接）。 GitHub在 GitHub**授权应用程序**页面上，对于**组织访问权限**，选择您希望 AWS CodeBuild 能够**访问的每个存储库旁边的请求**访问权限。选择**授权应用程序**后，返回 AWS CodeBuild 控制台，对于**存储库**，选择包含源代码的存储库的名称。选择**启用构建徽章**，以使您的项目的构建状态可见且可嵌入。
   + 如果您选择了 **Bitbucket**，请按照说明连接（或重新连接）Bitbucket。在 Bitbucket **确认对账户的访问**页面上，对于**组织访问权限**，选择**授予访问权限**。选择 “**授予访问权限**” 后，返回 AWS CodeBuild 控制台，在 “**存储库**” 中，选择包含源代码的存储库的名称。选择**启用构建徽章**，以使您的项目的构建状态可见且可嵌入。
**重要**  
更新项目源可能会影响项目构建徽章的准确性。

1. 在**环境**中：

   对于**环境映像**，执行下列操作之一：
   + 要使用由管理的 Docker 映像 AWS CodeBuild，请选择**托管映像**，然后从 “**操作系统**”、“**运行时**”、“映像” 和 “**映像****版本**” 中进行选择。从**环境类型**中进行选择（如果可用）。
   + 要使用其他 Docker 映像，请选择**自定义映像**。对于**环境类型**，请选择 **ARM**、**Linux**、**Linux GPU** 或 **Windows**。如果您针对**外部注册表 URL** 选择**其他注册表**，请使用 `docker repository/docker image name` 格式在 Docker Hub 中输入 Docker 映像的名称和标签。如果您选择 **Amazon ECR**，请使用**亚马逊 ECR 存储库和** A **mazon ECR 镜像**在您的账户中选择 Docker 镜像。 AWS 
   + 要使用私有 Docker 映像，请选择**自定义映像**。对于**环境类型**，请选择 **ARM**、**Linux**、**Linux GPU** 或 **Windows**。对于**映像注册表**，选择**其他注册表**，然后输入您的私有 Docker 映像的凭证的 ARN。凭证必须由 Secrets Manager 创建。有关更多信息，请参阅《AWS Secrets Manager 用户指南》中的[什么是 AWS Secrets Manager？](https://docs.aws.amazon.com/secretsmanager/latest/userguide/)。

1. 在**服务角色**中，执行下列操作之一：
   + 如果您没有 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. 展开**其他配置**并根据需要选择选项。

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

# 访问 AWS CodeBuild 构建徽章
<a name="access-badges"></a>

您可以使用 AWS CodeBuild 控制台或 AWS CLI 访问版本徽章。
+ 在 CodeBuild 控制台的生成项目列表中，在**名称**列中，选择与生成项目对应的链接。在 B **uild project: *project-name*** 页面的**配置**中，选择**复制徽章 URL**。有关更多信息，请参阅 [查看构建项目的详细信息（控制台）](view-project-details.md#view-project-details-console)。
+ 在中 AWS CLI，运行`batch-get-projects`命令。构建徽章 URL 包含在输出的项目环境详细信息部分中。有关更多信息，请参阅 [查看构建项目的详细信息 (AWS CLI)](view-project-details.md#view-project-details-cli)。

构建徽章请求 URL 生成时会归入常见默认分支，但您可以指定源存储库中已用于运行构建的任何分支。例如：

```
https://codebuild.us-east-1.amazon.com/badges?uuid=...&branch=<branch>
```

您也可以通过将徽章 URL 中的 `branch` 参数替换为 `tag` 参数来在源存储库中指定标签。例如：

```
https://codebuild.us-east-1.amazon.com/badges?uuid=...&tag=<tag>
```

# 发布 CodeBuild 构建徽章
<a name="publish-badges"></a>

您可以使用 markdown 映像中的构建徽章 URL 显示 markdown 文件中最新构建的状态。这对于在源存储库的 readme.md 文件中显示最新版本的状态很有用（例如， GitHub 或）。 CodeCommit例如：

```
![](<build badge URL>)
```

# CodeBuild 徽章状态
<a name="badge-statuses"></a>

 CodeBuild 构建徽章可以具有以下状态之一。
+ **PASSING** 给定分支上的最新构建已传递。
+ **FAILING** 给定分支上的最新构建已超时、失败、出现故障或停止。
+ **IN\$1PROGRESS** 给定分支上的最新构建正在进行中。
+ **UNKNOWN** 项目尚未为给定分支运行构建或根本未运行。此外，构建徽章功能可能已禁用。