Batch 次組建AWS CodeBuild - AWS CodeBuild

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

Batch 次組建AWS CodeBuild

您可以使用AWS CodeBuild來運行具有批處理構建的項目的併發和協調構建。

安全角色

Batch 處理生成在批處理配置中引入新的安全角色。此新角色是必需的,因為 CodeBuild 必須能夠呼叫StartBuildStopBuild,和RetryBuild操作作為批處理的一部分運行構建。客户應該使用一個新角色,而不是他們在構建中使用的相同角色,原因有兩個:

  • 賦予構建角色StartBuildStopBuild,和RetryBuild權限將允許單個構建通過 buildspec 啟動更多構建。

  • CodeBuild 批處理生成提供限制,這些限制可用於批處理中的構建和計算類型的數量。如果構建角色具有這些權限,則構建本身可能會繞過這些限制。

Batch 次組建類型

CodeBuild 支持以下批處理構建類型:

組建圖形

生成圖形定義了一組與批處理中的其他任務具有依賴關係的任務。

以下示例定義了創建依賴關係鏈的構建圖。

batch: fast-fail: false build-graph: - identifier: build1 env: variables: BUILD_ID: build1 ignore-failure: false - identifier: build2 buildspec: build2.yml env: variables: BUILD_ID: build2 depend-on: - build1 - identifier: build3 env: variables: BUILD_ID: build3 depend-on: - build2

在此範例中:

  • build1首先運行,因為它沒有依賴關係。

  • build2具有依賴於build1,因此build2運行之後build1完成。

  • build3具有依賴於build2,因此build3運行之後build2完成。

如需組建圖建置規範語法的詳細資訊,請參batch/build-graph

構建列表

構建列表定義了一些並行運行的任務。

以下範例定義建置列表。所以此build1build2組建將平行執行。

batch: fast-fail: false build-list: - identifier: build1 env: variables: BUILD_ID: build1 ignore-failure: false - identifier: build2 buildspec: build2.yml env: variables: BUILD_ID: build2 ignore-failure: true

如需建置列表建置規範語法的詳細資訊,請參batch/build-list

組建矩陣

構建矩陣定義了具有並行運行的不同配置的任務。CodeBuild 為每個可能的配置組合創建一個單獨的構建。

以下示例顯示了一個構建矩陣,其中包含兩個 buildspec 文件和一個環境變量的三個值。

batch: build-matrix: static: ignore-failure: false dynamic: buildspec: - matrix1.yml - matrix2.yml env: variables: MY_VAR: - VALUE1 - VALUE2 - VALUE3

在此示例中,CodeBuild 創建了六個版本:

  • matrix1.yml 取代為 $MY_VAR=VALUE1

  • matrix1.yml 取代為 $MY_VAR=VALUE2

  • matrix1.yml 取代為 $MY_VAR=VALUE3

  • matrix2.yml 取代為 $MY_VAR=VALUE1

  • matrix2.yml 取代為 $MY_VAR=VALUE2

  • matrix2.yml 取代為 $MY_VAR=VALUE3

每個建置將具有以下設定:

  • ignore-failure設定為false

  • env/type設定為LINUX_CONTAINER

  • env/image設定為aws/codebuild/amazonlinux2-x86_64-standard:3.0

  • env/privileged-mode設定為true

這些建置會平行執行。

如需組建矩陣建置規範語法的詳細資訊,請參batch/build-matrix

Batch 量報告模式

如果項目的源提供商是 Bitbucket、GitHub 或 GitHub Enterprise,並且您的項目已配置為向源提供商報告構建狀態,則可以選擇將批處理構建狀態發送到源提供商的方式。您可以選擇將狀態作為批的單個聚合狀態報告發送,也可以單獨報告批中每個生成的狀態。

如需詳細資訊,請參閱下列主題:

其他資訊

如需詳細資訊,請參閱下列主題: