

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

# 使用 Amazon CodeBuild 用 Amazon CodePipeline 测试代码并运行构建
<a name="how-to-create-pipeline"></a>

您可以使用测试代码并使用运行构建 Amazon CodePipeline ，从而实现发布过程自动化 Amazon CodeBuild。

下表列出了可用于执行这些操作的任务和方法。本主题不介绍如何使用 Amazon 开发工具包完成这些任务。



| Task | 可用方法 | 本主题中介绍的方法 | 
| --- | --- | --- | 
| 使用创建持续交付 (CD) 管道 CodePipeline ，通过以下方式自动构建 CodeBuild |  +  CodePipeline 控制台 <br />+  Amazon CLI <br />+  Amazon 软件开发工具包   |  +  [使用 CodePipeline 控制台](how-to-create-pipeline-console.md) <br />+  [使用 Amazon CLI](how-to-create-pipeline-cli.md) <br />+  您可以调整本主题中的信息以使用 Amazon 开发工具包。有关更多信息，请参阅《适用于 Amazon Web Services 的工具》**的 [SDK](https://www.amazonaws.cn/tools/#sdk) 部分中您的编程语言对应的 `create-pipeline` 操作文档，或参阅《Amazon CodePipeline API 参考》**中的 `[CreatePipeline](https://docs.amazonaws.cn/codepipeline/latest/APIReference/API_CreatePipeline.html)`。   | 
| 使用 CodeBuild 中的现有管道添加测试和构建自动化 CodePipeline |  +  CodePipeline 控制台 <br />+  Amazon CLI <br />+  Amazon 软件开发工具包   |  +  [使用 CodePipeline 控制台添加生成自动化](how-to-create-pipeline-add.md) <br />+  [使用 CodePipeline 控制台添加测试自动化](how-to-create-pipeline-add-test.md) <br />+  为此 Amazon CLI，您可以调整本主题中的信息，以创建包含 CodeBuild 生成操作或测试操作的管道。有关更多信息，请参阅《*Amazon CodePipeline 用户指南》[中的[编辑](https://docs.amazonaws.cn/codepipeline/latest/userguide/how-to-edit-pipelines.html#how-to-edit-pipelines-cli)CodePipeline 管道 (Amazon CLI) ](https://docs.amazonaws.cn/codepipeline/latest/userguide/pipeline-structure.html) 和管道结构参考*。 <br />+  您可以调整本主题中的信息以使用 Amazon 开发工具包。有关更多信息，请参阅《适用于 Amazon Web Services 的工具》**的 [SDK](https://www.amazonaws.cn/tools/#sdk) 部分中您的编程语言对应的 `update-pipeline` 操作文档，或参阅《Amazon CodePipeline API 参考》**中的 `[UpdatePipeline](https://docs.amazonaws.cn/codepipeline/latest/APIReference/API_UpdatePipeline.html)`。   | 

**Topics**
+ [先决条件](#how-to-create-pipeline-prerequisites)
+ [创建使用 CodeBuild （CodePipeline 控制台）的管道](how-to-create-pipeline-console.md)
+ [创建使用 CodeBuild (Amazon CLI) 的管道](how-to-create-pipeline-cli.md)
+ [向管道添加 CodeBuild 生成操作（CodePipeline 控制台）](how-to-create-pipeline-add.md)
+ [向管道添加 CodeBuild 测试操作（CodePipeline 控制台）](how-to-create-pipeline-add-test.md)

## 先决条件
<a name="how-to-create-pipeline-prerequisites"></a>

1. 回答[计划构建](planning.md)中的问题。

1. 如果您使用用户 CodePipeline 而不是 Amazon 根账户或管理员用户进行访问，请将名为的托管策略附加`AWSCodePipelineFullAccess`到该用户（或该用户所属的 IAM 组）。不建议使用 Amazon 根账户。此策略向用户授予在 CodePipeline 中创建管道的权限。有关更多信息，请参阅《用户指南》**中的[附加托管式策略](https://docs.amazonaws.cn/IAM/latest/UserGuide/access_policies_managed-using.html#attach-managed-policy-console)。
**注意**  
向该用户（或该用户所属的 IAM 组）附加策略的 IAM 实体在 IAM 中必须拥有附加策略的权限。有关更多信息，请参阅《用户指南》**中的[委派权限来管理 IAM 用户、组和凭证](https://docs.amazonaws.cn/IAM/latest/UserGuide/id_credentials_delegate-permissions.html)。

1. 如果您的 Amazon 账户中还没有可用的 CodePipeline 服务角色，请创建服务角色。 CodePipeline 使用此服务角色与其他 Amazon 服务进行交互 Amazon CodeBuild，包括代表您进行交互。例如，要使用创建 CodePipeline 服务角色，请运行 IAM `create-role` 命令： Amazon CLI 

   对于 Linux、macOS 或 Unix：

   ```
   aws iam create-role --role-name AWS-CodePipeline-CodeBuild-Service-Role --assume-role-policy-document '{"Version": "2012-10-17",		 	 	 "Statement":{"Effect":"Allow","Principal":{"Service":"codepipeline.amazonaws.com"},"Action":"sts:AssumeRole"}}'
   ```

   对于 Windows：

   ```
   aws iam create-role --role-name AWS-CodePipeline-CodeBuild-Service-Role --assume-role-policy-document "{\"Version\":\"2012-10-17\",		 	 	 \"Statement\":{\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"codepipeline.amazonaws.com\"},\"Action\":\"sts:AssumeRole\"}}"
   ```
**注意**  
创建此 CodePipeline 服务角色的 IAM 实体必须在 IAM 中拥有创建服务角色的权限。

1. 创建 CodePipeline 服务角色或确定现有服务角色后，如果默认 CodePipeline 服务角色策略尚未成为该角色策略的一部分，则必须按照[查看*Amazon CodePipeline 用户指南*](https://docs.amazonaws.cn/codepipeline/latest/userguide/iam-identity-based-access-control.html#how-to-custom-role)中的默认 CodePipeline 服务角色策略中所述将默认服务角色策略添加到该服务角色。
**注意**  
添加此 CodePipeline 服务角色策略的 IAM 实体必须在 IAM 中拥有向服务角色添加服务角色策略的权限。

1. 创建源代码并将其上传到 CodeBuild 和支持的存储库类型 CodePipeline，例如 Amazon S3 CodeCommit、Bitbucket 或 GitHub。源代码应包含构建规范文件，不过您也可在本主题稍后部分定义构建项目时，声明一个构建规范文件。有关更多信息，请参阅[Buildspec 参考](build-spec-ref.md)。
**重要**  
如果您计划使用管道来部署已构建的源代码，则构建输出构件必须与您使用的部署系统兼容。  
有关信息 Amazon OpsWorks，请参阅《*Amazon OpsWorks 用户指南》 Amazon OpsWorks[中的 “[应用程序源代码” ](https://docs.amazonaws.cn/opsworks/latest/userguide/workingapps-creating.html#workingapps-creating-source) 和 “ CodePipeline 搭配](https://docs.amazonaws.cn/opsworks/latest/userguide/other-services-cp.html)使用” *。