Amazon CodeBuild 与一起使用 Amazon CodePipeline 来测试代码和运行构建 - Amazon CodeBuild
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

Amazon CodeBuild 与一起使用 Amazon CodePipeline 来测试代码和运行构建

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

下表列出了可用于执行这些操作的任务和方法。使用 Amazon SDKs来完成这些任务不在本主题的讨论范围之内。

任务 可用方法 本主题中介绍的方法
创建持续交付 (CD) 管道 CodePipeline ,该管道可自动进行构建 CodeBuild
  • CodePipeline 控制台

  • Amazon CLI

  • Amazon SDKs

在中的现有管道中添加测试和构建自动化功能 CodeBuild CodePipeline
  • CodePipeline 控制台

  • Amazon CLI

  • Amazon SDKs

先决条件

  1. 回答计划构建中的问题。

  2. 如果您使用用户 CodePipeline 而不是 Amazon 根账户或管理员用户进行访问,请将名为的托管策略附加AWSCodePipelineFullAccess到该用户(或该用户所属的IAM组)。不建议使用 r Amazon oot 账户。此策略授予用户在中创建管道的权限 CodePipeline。有关更多信息,请参阅《用户指南》中的附加托管策略

    注意

    将策略附加到用户(或用户所属IAM群组)的IAM实体必须拥有附加策略IAM的权限。有关更多信息,请参阅用户指南中的委托管理IAM用户、群组和凭证的权限

  3. 如果您的 Amazon 账户中还没有可用的 CodePipeline 服务角色,请创建一个服务角色。 CodePipeline 使用此服务角色与其他 Amazon 服务进行交互 Amazon CodeBuild,包括代表您进行交互。例如,要使用创建 CodePipeline 服务角色,请运行以下IAMcreate-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的权限。

  4. 创建 CodePipeline 服务角色或确定现有服务角色后,如果默认 CodePipeline 服务角色策略还不是该角色策略的一部分,则必须按照Amazon CodePipeline 用户指南》中查看默认 CodePipeline 服务角色策略中所述向该服务角色添加默认服务角色策略。

    注意

    添加此 CodePipeline 服务角色策略的IAM实体必须具有IAM向服务角色添加服务角色策略的权限。

  5. 创建源代码并将其上传到 CodeBuild 和支持的存储库类型 CodePipeline,例如 Amazon S3 CodeCommit、Bitbucket 或 GitHub。源代码应包含构建规范文件,不过您也可在本主题稍后部分定义构建项目时,声明一个构建规范文件。有关更多信息,请参阅Buildspec 参考

    重要

    如果您计划使用管道来部署已构建的源代码,则构建输出构件必须与您使用的部署系统兼容。