AWS CodeBuild 與詹金斯一起使用 - AWS CodeBuild

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

AWS CodeBuild 與詹金斯一起使用

您可以使用詹金斯插件 CodeBuild 與您的詹金斯構建工作集成。 AWS CodeBuild 您可以使用插件將構建作業發送到 Jenkins 構建節點,而不是將構建作業發送到 CodeBuild。透過此方式,您便不需佈建、設定和管理 Jenkins 組建節點。

設置詹金斯

如需使用外掛程式設定 Jenkins,以及下載 AWS CodeBuild 外掛程式原始程式碼的相關資訊,請參閱 https://github.com/awslabs/aws-codebuild-jenkins-plugin

安裝外掛程式。

如果您已設定 Jenkins 伺服器,並且只想要安裝 AWS CodeBuild 外掛程式,則請在您的 Jenkins 執行個體上的 Plugin Manager 中搜尋 CodeBuild Plugin for Jenkins

使用插件

若要 AWS CodeBuild 與外部的來源搭配使用 VPC
  1. 在 CodeBuild 主控台中建立專案。如需詳細資訊,請參閱建立組建專案 (主控台)

    • 選擇您要執行組建的「 AWS 區域」。

    • (選擇性) 設定 Amazon VPC 組態以允許 CodeBuild 建置容器存取VPC.

    • 寫下專案的名稱。您在步驟 3 會用到。

    • (選擇性) 如果原生不支援您的來源儲存庫 CodeBuild,您可以將 Amazon S3 設定為專案的輸入來源類型。

  2. 在中IAMconsole,建立由詹金斯外掛程式使用的使用者。

    • 建立使用者的登入資料時,請選擇 Programmatic Access (程式設計存取)

    • 建立類似以下的政策,然後將政策連接至您的使用者。

      { "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。

    • 設定組建步驟。

      • 提供 Region (區域)Credentials (登入資料)Project Name (專案名稱) 的值。

      • 選擇 Use Project source (使用專案來源)

      • 儲存組態,並從 Jenkins 執行組建。

  4. 針對 Source Code Management (來源碼管理),選擇要擷取來源的方式。您可能需要在 Jenkins 服務器上安裝插件(或源存儲庫提供程序的 Jenkins 插件)。 GitHub

    • 在 [設定] 頁面上,選擇 [新增建置步驟],然後選擇 [執行建置於] AWS CodeBuild。

    • 設定組建步驟。

      • 提供 Region (區域)Credentials (登入資料)Project Name (專案名稱) 的值。

      • 選擇 Use Jenkins source (使用 Jenkins 來源)

      • 儲存組態,並從 Jenkins 執行組建。

要使用 AWS CodeBuild 插件與詹金斯管道插件
  • 在您的 Jenkins 管道專案頁面上,使用程式碼片段產生器產生管道指令碼,該指令碼會新增 CodeBuild 為管線中的一個步驟。它應該會產生類似以下的指令碼:

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