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

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

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

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

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

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

  • AWS CLI

  • AWS SDKs

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

  • AWS CLI

  • AWS SDKs

先决条件

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

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

    注意

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

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

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

    注意

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

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

    重要

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