使用 AWS CodeBuild 搭配 Jenkins - AWS CodeBuild

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

使用 AWS CodeBuild 搭配 Jenkins

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

設定 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. 在代碼建置控制台中建立專案。如需詳細資訊,請參閱 建立組建專案 (主控台)

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

    • (選用)設定組態,以允許 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 執行組建。

使用 AWS CodeBuild 外掛程式搭配 Jenkins 管道外掛程式

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

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