AWS CodeBuild 与 Jenkins 搭配使用 - AWS CodeBuild

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

AWS CodeBuild 与 Jenkins 搭配使用

你可以使用 Jenkins 插件 CodeBuild 与你的 AWS CodeBuild Jenkins 构建任务集成。与其将构建任务发送到 Jenkins 构建节点,不如使用插件将生成任务发送到 CodeBuild。这样便无需预置、配置和管理 Jenkins 构建节点。

设置 Jenkins

有关使用插件设置 Jenkins 以及下载 AWS CodeBuild 插件源代码的信息,请参阅 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. 在中IAMconsole,创建一个供 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'