

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 AWS CodeBuild 搭配 AWS CodePipeline 來測試程式碼和執行組建
<a name="how-to-create-pipeline"></a>

您可以使用 來測試程式碼並使用 執行組建 AWS CodePipeline ，以自動化發行程序 AWS CodeBuild。

下表列出可用於執行它們的任務和方法。使用 AWS 開發套件完成這些任務不在本主題的範圍內。


****  

| 任務 | 可用方法 | 本主題中說明的方法 | 
| --- | --- | --- | 
| 使用 CodePipeline 建立持續交付 (CD) 管道，以 CodeBuild 自動化建置 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/codebuild/latest/userguide/how-to-create-pipeline.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/codebuild/latest/userguide/how-to-create-pipeline.html)  | 
| 使用 CodeBuild 將測試和建置自動化新增至 CodePipeline 中的現有管道 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/codebuild/latest/userguide/how-to-create-pipeline.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/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 群組）。不建議使用 AWS 根帳戶。此政策授予使用者在 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，包括 。例如，若要使用 AWS CLI 建立 CodePipeline 服務角色，請執行 IAM `create-role`命令：

   針對 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 支援的儲存庫類型，例如 CodeCommit、Amazon S3、Bitbucket 或 GitHub。來源碼應該包含 Buildspec 檔案，但您可以在本主題稍後定義組建專案時宣告一個。如需更多資訊，請參閱[Buildspec 參考](build-spec-ref.md)。
**重要**  
若您計劃使用管道來部署建置的原始程式碼，則建置輸出成品必須與您使用的部署系統相容。  
如需 OpsWorks，請參閱*OpsWorks 《 使用者指南*》中的[應用程式來源](https://docs.aws.amazon.com/opsworks/latest/userguide/workingapps-creating.html#workingapps-creating-source)和[搭配 使用 CodePipeline OpsWorks](https://docs.aws.amazon.com/opsworks/latest/userguide/other-services-cp.html)。