本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将 Amazon CodeBuild 与 Jenkins 结合使用
您可以使用 Jenkins 插件来Amazon CodeBuild将 CodeBuild 与您的 Jenkins 构建作业相集成。您可以使用插件将您的构建作业发送给 CodeBuild,而不是发送给 Jenkins 构建节点。这样一来,便无需预置、配置和管理 Jenkins 构建节点。
设置 Jenkins
有关使用设置 Jenkins 的信息Amazon CodeBuild插件,然后要下载插件源代码,请参阅https://github.com/awslabs/aws-codebuild-jenkins-plugin
安装插件
如果您已设置 Jenkins 服务器并希望仅安装 Amazon CodeBuild 插件,请在您的 Jenkins 实例上的插件管理器中搜索 CodeBuild Plugin for Jenkins
。
使用插件
将 Amazon CodeBuild 与 VPC 外部的源结合使用
-
在 CodeBuild 控制台中创建项目。有关更多信息,请参阅创建构建项目 (控制台)。
选择Amazon要在其中运行构建任务的区域。
(可选)设置 Amazon VPC 配置以允许 CodeBuild 构建容器访问您的 VPC 中的资源。
记下您的项目的名称。您在步骤 3 中需要它。
(可选)如果 CodeBuild 本机不支持您的源存储库,可以将 Amazon S3 设置为您的项目的输入源类型。
-
在 IAMConsole 中,创建一个 IAM 用户以供 Jenkins 插件使用。
当您为该用户创建凭证时,请选择编程访问。
-
创建如下所示的策略,然后将该策略附加到您的用户。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Resource": ["arn:aws:logs:{{region}}:{{awsAccountId}}:log-group:/aws/codebuild/{{projectName}}:*"], "Action": ["logs:GetLogEvents"] }, { "Effect": "Allow", "Resource": ["arn:aws:s3:::{{inputBucket}}"], "Action": ["s3:GetBucketVersioning"] }, { "Effect": "Allow", "Resource": ["arn:aws:s3:::{{inputBucket}}/{{inputObject}}"], "Action": ["s3:PutObject"] }, { "Effect": "Allow", "Resource": ["arn:aws:s3:::{{outputBucket}}/*"], "Action": ["s3:GetObject"] }, { "Effect": "Allow", "Resource": ["arn:aws:codebuild:{{region}}:{{awsAccountId}}:project/{{projectName}}"], "Action": ["codebuild:StartBuild", "codebuild:BatchGetBuilds", "codebuild:BatchGetProjects"] } ] }
-
在 Jenkins 中创建一个自由式项目。
在存储库的配置选择页面,选择添加构建步骤,然后选择在 CodeBuild 上运行构建.
配置您的构建步骤。
为 Region (区域)、Credentials (凭证) 和 Project Name (项目名称) 提供值。
选择 Use Project source (使用项目源)。
保存配置并从 Jenkins 运行构建任务。
-
对于 Source Code Management (源代码管理),选择您希望如何检索您的源。您可能需要在 Jenkins 服务器上安装 GitHub 插件 (或您的源存储库提供商的 Jenkins 插件)。
在 Configure (配置) 页面上,选择 Add build step (添加构建步骤),然后选择 Run build on Amazon CodeBuild (在 &ACB; 上运行构建任务)。
配置您的构建步骤。
为 Region (区域)、Credentials (凭证) 和 Project Name (项目名称) 提供值。
选择 Use Jenkins source (使用 Jenkins 源)。
保存配置并从 Jenkins 运行构建任务。
将 Amazon CodeBuild 插件与 Jenkins 管道插件结合使用
-
在您的 Jenkins 管道项目页面上,使用代码段生成器来生成将 CodeBuild 作为管道中的步骤添加的管道脚本。它应生成如下所示的脚本:
awsCodeBuild projectName: 'project', credentialsType: 'keys', region: 'us-west-2', sourceControlType: 'jenkins'