本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Batch 次組建AWS CodeBuild
您可以使用AWS CodeBuild來運行具有批處理構建的項目的併發和協調構建。
安全角色
Batch 處理生成在批處理配置中引入新的安全角色。此新角色是必需的,因為 CodeBuild 必須能夠呼叫StartBuild
、StopBuild
,和RetryBuild
操作作為批處理的一部分運行構建。客户應該使用一個新角色,而不是他們在構建中使用的相同角色,原因有兩個:
-
賦予構建角色
StartBuild
、StopBuild
,和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。
構建列表
構建列表定義了一些並行運行的任務。
以下範例定義建置列表。所以此build1
和build2
組建將平行執行。
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,並且您的項目已配置為向源提供商報告構建狀態,則可以選擇將批處理構建狀態發送到源提供商的方式。您可以選擇將狀態作為批的單個聚合狀態報告發送,也可以單獨報告批中每個生成的狀態。
如需詳細資訊,請參閱下列主題:
其他資訊
如需詳細資訊,請參閱下列主題: