将 AWS CodeBuild 与 Jenkins 结合使用 - AWS CodeBuild

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

将 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 外部的源结合使用
  1. 在 CodeBuild 控制台中创建项目。有关更多信息,请参阅创建构建项目(控制台)

    • 选择要在其中运行构建任务的 AWS 区域。

    • (可选)将 Amazon VPC 配置设置为允许 CodeBuild 构建容器访问 VPC 中的资源。

    • 记下您的项目的名称。您在步骤 3 中需要它。

    • (可选)如果 CodeBuild 本机不支持您的源存储库,则可以将 Amazon S3 设置为您的项目的输入源类型。

  2. 在 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"] } ] }
  3. 在 Jenkins 中创建一个自由式项目。

    • 配置页面上,选择添加构建步骤,然后选择在 CodeBuild 上运行构建任务

    • 配置您的构建步骤。

      • 区域凭证项目名称提供值。

      • 选择使用项目源

      • 保存配置并从 Jenkins 运行构建任务。

  4. 对于源代码管理,选择您希望如何检索您的源。您可能需要在 Jenkins 服务器上安装 GitHub 插件 (或您的源存储库提供商的 Jenkins 插件)。

    • 配置页面上,选择添加构建步骤,然后选择在 AWS CodeBuild 上运行构建任务

    • 配置您的构建步骤。

      • 区域凭证项目名称提供值。

      • 选择使用 Jenkins 源

      • 保存配置并从 Jenkins 运行构建任务。

将 AWS CodeBuild 插件与 Jenkins 管道插件结合使用
  • 在您的 Jenkins 管道项目页面上,使用代码段生成器来生成将 CodeBuild 作为管道中的步骤添加的管道脚本。它应生成如下所示的脚本:

    awsCodeBuild projectName: 'project', credentialsType: 'keys', region: 'us-west-2', sourceControlType: 'jenkins'