AWS CodeBuild 搭配 Jenkins 使用 - AWS CodeBuild

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

AWS CodeBuild 搭配 Jenkins 使用

您可以使用 的 Jenkins 外掛程式 CodeBuild ,與您的 Jenkins 建置任務 AWS CodeBuild 整合。您不是將建置任務傳送至 Jenkins 建置節點,而是使用 外掛程式將建置任務傳送至 CodeBuild。透過此方式,您便不需佈建、設定和管理 Jenkins 組建節點。

設定 Jenkins

如需使用 AWS CodeBuild 外掛程式設定 Jenkins 的資訊,以及下載外掛程式原始程式碼,請參閱 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,建立 Jenkins 外掛程式要使用的使用者。

    • 建立使用者的登入資料時,請選擇 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 伺服器上安裝 GitHub 外掛程式 (或來源儲存庫提供者的 Jenkins 外掛程式)。

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

    • 設定組建步驟。

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

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

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

若要搭配 Jenkins 管道 AWS CodeBuild 外掛程式使用外掛程式
  • 在 Jenkins 管道專案頁面上,使用程式碼片段產生器來產生管道指令碼,以新增 CodeBuild 作為管道中的步驟。它應該會產生類似以下的指令碼:

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