本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWS CodeBuild 与一起使用 AWS CodePipeline 来测试代码和运行构建
您可以使用测试代码并使用运行构建 AWS CodePipeline ,从而实现发布过程的自动化 AWS CodeBuild。
下表列出了可用于执行这些操作的任务和方法。使用 AWS SDKs来完成这些任务不在本主题的讨论范围之内。
任务 | 可用方法 | 本主题中介绍的方法 |
---|---|---|
创建持续交付 (CD) 管道 CodePipeline ,该管道可自动进行构建 CodeBuild |
|
|
在中的现有管道中添加测试和构建自动化功能 CodeBuild CodePipeline |
|
|
主题
先决条件
-
回答计划构建中的问题。
-
如果您使用用户 CodePipeline 而不是 AWS 根账户或管理员用户进行访问,请将名为的托管策略附加
AWSCodePipelineFullAccess
到该用户(或该用户所属的IAM组)。不建议使用 r AWS oot 账户。此策略授予用户在中创建管道的权限 CodePipeline。有关更多信息,请参阅《用户指南》中的附加托管策略。注意
将策略附加到用户(或用户所属IAM群组)的IAM实体必须拥有附加策略IAM的权限。有关更多信息,请参阅用户指南中的委托管理IAM用户、群组和凭证的权限。
-
如果您的 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的权限。
-
创建 CodePipeline 服务角色或确定现有服务角色后,如果默认 CodePipeline 服务角色策略还不是该角色策略的一部分,则必须按照《AWS CodePipeline 用户指南》中查看默认 CodePipeline 服务角色策略中所述向该服务角色添加默认服务角色策略。
注意
添加此 CodePipeline 服务角色策略的IAM实体必须具有IAM向服务角色添加服务角色策略的权限。
-
创建源代码并将其上传到 CodeBuild 和支持的存储库类型 CodePipeline,例如 Amazon S3 CodeCommit、Bitbucket 或 GitHub。源代码应包含构建规范文件,不过您也可在本主题稍后部分定义构建项目时,声明一个构建规范文件。有关更多信息,请参阅Buildspec 参考。
重要
如果您计划使用管道来部署已构建的源代码,则构建输出构件必须与您使用的部署系统兼容。
-
有关信息 AWS OpsWorks,请参阅《AWS OpsWorks 用户指南》 AWS OpsWorks中的 “应用程序来源” 和 “ CodePipeline 与一起使用”。
-