将 AWS CodeBuild 与 Jenkins 结合使用
可以使用适用于 AWS CodeBuild 的 Jenkins 插件将 CodeBuild 与您的 Jenkins 构建作业集成。您可以使用插件将您的构建作业发送给 CodeBuild,而不是发送给 Jenkins 构建节点。这样便无需预置、配置和管理 Jenkins 构建节点。
设置 Jenkins
有关使用 AWS CodeBuild 插件设置 Jenkins 以及下载插件源代码的信息,请参阅 https://github.com/awslabs/aws-codebuild-jenkins-plugin
安装插件
如果您已设置 Jenkins 服务器并希望仅安装 AWS CodeBuild 插件,请在您的 Jenkins 实例上的插件管理器中搜索 CodeBuild Plugin for Jenkins
。
使用插件
将 AWS CodeBuild 与 VPC 外部的源结合使用
-
在 CodeBuild 控制台中创建项目。有关更多信息,请参阅 创建构建项目(控制台)。
选择要在其中运行构建任务的 AWS 区域。
(可选)将 Amazon VPC 配置设置为允许 CodeBuild 构建容器访问 VPC 中的资源。
记下您的项目的名称。您在步骤 3 中需要它。
(可选)如果 CodeBuild 本机不支持您的源存储库,则可以将 Amazon S3 设置为您的项目的输入源类型。
-
在 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 上运行构建任务。
配置您的构建步骤。
为区域、凭证和项目名称提供值。
选择使用项目源。
保存配置并从 Jenkins 运行构建任务。
-
对于源代码管理,选择您希望如何检索您的源。您可能需要在 Jenkins 服务器上安装 GitHub 插件 (或您的源存储库提供商的 Jenkins 插件)。
在配置页面上,选择添加构建步骤,然后选择在 AWS CodeBuild 上运行构建任务。
配置您的构建步骤。
为区域、凭证和项目名称提供值。
选择使用 Jenkins 源。
保存配置并从 Jenkins 运行构建任务。
将 AWS CodeBuild 插件与 Jenkins 管道插件结合使用
-
在您的 Jenkins 管道项目页面上,使用代码段生成器来生成将 CodeBuild 作为管道中的步骤添加的管道脚本。它应生成如下所示的脚本:
awsCodeBuild projectName: 'project', credentialsType: 'keys', region: 'us-west-2', sourceControlType: 'jenkins'