

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

# AWS CodeBuild 与一起使用 AWS CodePipeline 来测试代码和运行构建
<a name="how-to-create-pipeline"></a>

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

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


****  

| Task | 可用方法 | 本主题中介绍的方法 | 
| --- | --- | --- | 
| 创建持续交付 (CD) 管道 CodePipeline ，该管道可自动进行构建 CodeBuild |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/codebuild/latest/userguide/how-to-create-pipeline.html)  |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/codebuild/latest/userguide/how-to-create-pipeline.html)  | 
| 在中的现有管道中添加测试和构建自动化功能 CodeBuild CodePipeline |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/codebuild/latest/userguide/how-to-create-pipeline.html)  |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/codebuild/latest/userguide/how-to-create-pipeline.html)  | 

**Topics**
+ [先决条件](#how-to-create-pipeline-prerequisites)
+ [创建使用 CodeBuild （CodePipeline 控制台）的管道](how-to-create-pipeline-console.md)
+ [创建使用 CodeBuild (AWS 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 而不是 AWS 根账户或管理员用户进行访问，请将名为的托管策略附加`AWSCodePipelineFullAccess`到该用户（或该用户所属的 IAM 群组）。不建议使用 r AWS oot 账户。此策略向用户授予在 CodePipeline 中创建管道的权限。有关更多信息，请参阅《用户指南》**中的[附加托管式策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-using.html#attach-managed-policy-console)。
**注意**  
向该用户（或该用户所属的 IAM 组）附加策略的 IAM 实体在 IAM 中必须拥有附加策略的权限。有关更多信息，请参阅《用户指南》**中的[委派权限来管理 IAM 用户、组和凭证](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_delegate-permissions.html)。

1. 如果您的 AWS 账户中还没有可用的 CodePipeline 服务角色，请创建一个服务角色。 CodePipeline 使用此服务角色与其他 AWS 服务进行交互 AWS CodeBuild，包括代表您进行交互。例如，要使用创建 CodePipeline 服务角色，请运行 IAM `create-role` 命令： AWS 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 服务角色策略尚未成为该角色策略的一部分，则必须按照[《*AWS CodePipeline 用户指南》*中查看默认 CodePipeline 服务角色策略](https://docs.aws.amazon.com/codepipeline/latest/userguide/iam-identity-based-access-control.html#how-to-custom-role)中所述向该服务角色添加默认服务角色策略。
**注意**  
添加此 CodePipeline 服务角色策略的 IAM 实体必须在 IAM 中拥有向服务角色添加服务角色策略的权限。

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