本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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
,因此在build1
完成後build2
運行。 -
build3
具有依賴關係build2
,因此在build2
完成後build3
運行。
如需建置圖形 Buildspec 語法的詳細資訊,請參閱。batch/build-graph
組建清單
組建清單會定義一些並行執 parallel 的工作。
下列範例會定義組建清單。build1
和build2
組建將 parallel 執行。
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
如需組建清單 Buildspec 語法的詳細資訊,請參閱。batch/build-list
建立矩陣
構建矩陣定義具有並行運 parallel 的不同配置的任務。 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:4.0
-
env/privileged-mode
設定為true
這些組建並行執 parallel。
如需建置矩陣 Buildspec 語法的詳細資訊,請參閱。batch/build-matrix
Batch 報告模式
如果您專案的來源提供者是 Bitbucket 或 GitHub Enterprise GitHub,且您的專案設定為向來源提供者報告建置狀態,您可以選取要將批次建置狀態傳送給來源提供者的方式。您可以選擇將狀態作為批次的單一彙總狀態報表傳送,或者分別報告批次中每個組建的狀態。
如需詳細資訊,請參閱下列主題:
其他資訊
如需詳細資訊,請參閱下列主題: