本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将 Amazon CodePipeline 与 Amazon CodeBuild 结合使用以测试代码和运行构建
通过使用 Amazon CodePipeline 测试您的代码并借助 Amazon CodeBuild 运行构建,您可以自动执行发布流程。
下表列出了可用于执行这些操作的任务和方法。本主题不介绍如何使用 Amazon 开发工具包完成这些任务。
任务 | 可用方法 | 本主题中介绍的方法 |
---|---|---|
借助创建持续交付 (CD) 管道 CodePipeline 它使用以下命令自动构建 CodeBuild |
|
|
借助实现的测试和生成自动化添加到生成自动化以使用 CodeBuild 到中现有的管道 CodePipeline |
|
|
先决条件
-
回答 计划构建 中的问题。
-
如果您使用 IAM 用户进行访问 CodePipeline 而不是Amazon根账户或管理员 IAM 用户,附加名为的托管策略
AWSCodePipelineFullAccess
向该用户 (或该用户所属的 IAM 组) 发送到该用户 (或该用户所属的组)。建议不使用 Amazon 根账户。此策略向用户授予在 CodePipeline 中创建管道的权限。有关更多信息,请参阅附加托管策略中的IAM 用户指南.注意 向该用户 (或该用户所属的 IAM 组) 附加策略的权限。有关更多信息,请参阅委派权限以管理 IAM 用户、群组和证书中的IAM 用户指南.
-
创建 CodePipeline 服务角色 (如果您的中还没有服务角色)Amazonaccount. CodePipeline 使用此服务角色与其他服务角色进行交互Amazon服务,包括Amazon CodeBuild,代表您处理这一事宜。例如,使用Amazon 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\"}}"
注意 创建这个的 IAM 实体 CodePipeline 服务角色必须拥有在 IAM 中创建服务角色的权限。
-
在创建一个 CodePipeline 服务角色或识别现有服务角色,您必须添加默认值 CodePipeline 服务角色策略如中所述的服务角色策略检查默认值 CodePipeline 服务角色策略中的Amazon CodePipeline用户指南,如果它尚未成为角色策略的一部分。
注意 添加此内容的 IAM 实体 CodePipeline 服务角色策略必须拥有在 IAM 中将服务角色策略添加到服务角色的权限。
-
创建源代码并将其上传到支持的存储库类型 CodeBuild 和 CodePipeline之外的压缩算法(例如 CodeCommit、Amazon S3、Bitbucket 或 GitHub. 源代码应包含构建规范文件,不过您也可在本主题稍后部分定义构建项目时,声明一个构建规范文件。有关更多信息,请参见 构建规范参考。
重要 如果您计划使用管道来部署已生成的源代码,则构建输出构件必须与您使用的部署系统兼容。
-
适用于 CodeDeploy,请参阅阅阅阅阅阅Amazon CodeDeploy 示例本指南中的, 以及为其准备修订 CodeDeploy中的Amazon CodeDeploy用户指南.
-
适用于Amazon Elastic Beanstalk,请参阅阅阅阅阅阅Amazon Elastic Beanstalk 示例本指南中的, 以及创建应用程序源包。中的Amazon Elastic Beanstalk开发人员指南.
-
适用于Amazon OpsWorks,请参阅阅阅应用程序源和使用 CodePipeline 和Amazon OpsWorks中的Amazon OpsWorks用户指南.
-
主题