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

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

将 Amazon CodePipeline 与 Amazon CodeBuild 结合使用以测试代码和运行构建

通过使用 Amazon CodePipeline 测试您的代码并借助 Amazon CodeBuild 运行构建,您可以自动执行发布流程。

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

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

  • Amazon CLI

  • Amazon 开发工具包

将借助 CodePipeline 的测试和构建自动化添加到现有的管道
  • CodePipeline 控制台

  • Amazon CLI

  • Amazon 开发工具包

先决条件

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

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

    注意

    向该用户 (或该用户所属的 IAM 组) 附加策略的 IAM 实体在 IAM 中必须拥有附加策略的权限。有关更多信息,请参阅 。授予管理 IAM 用户、组和证书的权限中的IAM 用户指南.

  3. 如果您的中还没有 CodePipeline 服务角色,请创建一个Amazonaccount. CodePipeline 使用此服务角色与其他角色进行交互Amazon服务,包括Amazon CodeBuild,代表您处理这一事项。例如,使用Amazon CLI要创建 CodePipeline 服务角色,请运行 IAMcreate-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 中必须拥有创建服务角色的权限。

  4. 创建 CodePipeline 服务角色或识别现有服务角色后,您必须将默认 CodePipeline 服务角色策略添加到服务角色,如中所述。查看默认的 CodePipeline 服务角色策略中的Amazon CodePipeline用户指南,如果它尚未成为角色策略的一部分。

    注意

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

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

    重要

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