AWS CodeBuild - AWS CodePipeline

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

AWS CodeBuild

可讓您執行建置和測試做為您管道的一部分。當您執行 CodeBuild 建置或測試動作時,建置規格中指定的命令會在 CodeBuild 容器內執行。指定為 CodeBuild 動作輸入成品的所有成品,都可以在執行命令的容器內使用。 CodeBuild 可以提供構建或測試操作。如需詳細資訊,請參閱 AWS CodeBuild 使用者指南

當您使用主控台中的 CodePipeline 精靈建立組建專案時,組 CodeBuild 建專案會顯示來源提供者為 CodePipeline。當您在 CodeBuild主控台中建立組建專案時,您無法指定 CodePipeline 為來源提供者,但是將建置動作新增至管線會調整 CodeBuild 主控台中的來源。如需詳細資訊,請參閱 AWS CodeBuild API 參考ProjectSource中的。

動作類型

  • 類別:BuildTest

  • 擁有者:AWS

  • 提供者:CodeBuild

  • 版本:1

組態參數

ProjectName

必要:是

ProjectName是中建置專案的名稱 CodeBuild。

PrimarySource

必要:有條件

PrimarySource參數的值必須是動作的其中一個輸入加工品的名稱。 CodeBuild 查找構建規範文件,並在包含此成品的解壓縮版本的目錄中運行 build spec 命令。

如果為 CodeBuild 動作指定了多個輸入人工因素,則需要此參數。動作只有一個來源成品時,則 PrimarySource 成品會預設為該成品。

BatchEnabled

必要:否

BatchEnabled參數的 Boolean 值允許動作在相同的組建執行中執行多個組建。

啟用此選項時,即可使用此CombineArtifacts選項。

如需啟用批次建置的管道範例,請參閱與批次建置CodePipeline 整合 CodeBuild 和批次建置

CombineArtifacts

必要:否

CombineArtifacts參數的 Boolean 值會將批次組建中的所有建置加工品合併到建置動作的單一成品檔案中。

若要使用此選項,必須啟用BatchEnabled參數。

EnvironmentVariables

必要:否

此參數的值可用來設定管線中 CodeBuild 動作的環境變數。EnvironmentVariables 參數的值採用環境變數物件的 JSON 陣列格式。請參閱 動作宣告 (CodeBuild 範例) 中的範例參數。

每個物件都有三個部分,而且全都是字串:

  • name:環境變數的名稱或索引鍵。

  • value:環境變數的值。使用PARAMETER_STORESECRETS_MANAGER類型時,此值必須是您已經儲存在 AWS Systems Manager 參數存放區中的參數名稱,或是您已經儲存在 AWS Secrets Manager 中的機密名稱。

    注意

    我們強烈建議使用環境變數來儲存敏感值,尤其是 AWS 憑證。使用 CodeBuild 主控台或 AWS CLI 時,環境變數會以純文字顯示。對於敏感值,建議您改用 SECRETS_MANAGER 類型。

  • type:(選擇性) 環境變數的類型。有效值為 PARAMETER_STORESECRETS_MANAGERPLAINTEXT。未指定時,則將預設為 PLAINTEXT

注意

當您type針對環境變數組態輸入namevalue、和時,特別是當環境變數包含 CodePipeline 輸出變數語法時,請勿超過組態值欄位 1000 個字元的限制。如果超過此限制,系統就會傳回驗證錯誤。

如需詳細資訊,請參閱 AWS CodeBuild API 參考 EnvironmentVariable中的。如需具有可解析為 GitHub 分支名稱之環境變數的範例 CodeBuild 動作,請參閱範例:搭配 CodeBuild 環境 BranchName變數使用變數

Input artifacts (輸入成品)

  • 人工因素數目:1 to 5

  • 描述: CodeBuild 尋找組建規格檔案,並從主要來源加工品的目錄執行建置規格命令。當為動作指定多個輸入來源時,必須使用中的 CodeBuild 動作組態參數來設定PrimarySource此人工因素 CodePipeline。

    每個輸入成品都會擷取到自己的目錄,其位置會存放在環境變數中。主要來源成品的目錄可透過 $CODEBUILD_SRC_DIR 使用。所有其他輸入成品的目錄可透過 $CODEBUILD_SRC_DIR_yourInputArtifactName 使用。

    注意

    CodeBuild 專案中設定的成品會成為管線中 CodeBuild 動作所使用的輸入成品。

輸出成品

  • 人工因素數目:0 to 5

  • 描述:這些可用於使 CodeBuild 建構規格檔案中定義的加工品可供管線中的後續動作使用。僅定義一個輸出成品時,可以直接在建置規格檔案的 artifacts 區段下定義此成品。指定多個輸出成品時,所有參照的成品都必須在建置規格檔案中定義為次要成品。中的輸出加工品名稱 CodePipeline 必須與建構規格檔案中的人工因素識別元相符。

    注意

    在 CodeBuild 專案中設定的成品會成為管線動作中的 CodePipeline 輸入成品。

    如果針對批次建置選取CombineArtifacts參數,則輸出人工因素位置會包含在相同執行中執行之多個組建的合併成品。

輸出變數

此動作將建置過程中匯出的所有環境變數產生為變數。如需如何匯出環境變數的詳細資訊,請參閱 AWS CodeBuild API 指南 EnvironmentVariable中的。

如需有關在中使用 CodeBuild 環境變數的詳細資訊 CodePipeline,請參閱中的範例CodeBuild 動作輸出變數。如需可在中使用的環境變數清單 CodeBuild,請參閱《使AWS CodeBuild 用指南》中的建置環境中的環境變數

動作宣告 (CodeBuild 範例)

YAML
Name: Build Actions: - Name: PackageExport ActionTypeId: Category: Build Owner: AWS Provider: CodeBuild Version: '1' RunOrder: 1 Configuration: BatchEnabled: 'true' CombineArtifacts: 'true' ProjectName: my-build-project PrimarySource: MyApplicationSource1 EnvironmentVariables: '[{"name":"TEST_VARIABLE","value":"TEST_VALUE","type":"PLAINTEXT"},{"name":"ParamStoreTest","value":"PARAMETER_NAME","type":"PARAMETER_STORE"}]' OutputArtifacts: - Name: MyPipeline-BuildArtifact InputArtifacts: - Name: MyApplicationSource1 - Name: MyApplicationSource2
JSON
{ "Name": "Build", "Actions": [ { "Name": "PackageExport", "ActionTypeId": { "Category": "Build", "Owner": "AWS", "Provider": "CodeBuild", "Version": "1" }, "RunOrder": 1, "Configuration": { "BatchEnabled": "true", "CombineArtifacts": "true", "ProjectName": "my-build-project", "PrimarySource": "MyApplicationSource1", "EnvironmentVariables": "[{\"name\":\"TEST_VARIABLE\",\"value\":\"TEST_VALUE\",\"type\":\"PLAINTEXT\"},{\"name\":\"ParamStoreTest\",\"value\":\"PARAMETER_NAME\",\"type\":\"PARAMETER_STORE\"}]" }, "OutputArtifacts": [ { "Name": "MyPipeline-BuildArtifact" } ], "InputArtifacts": [ { "Name": "MyApplicationSource1" }, { "Name": "MyApplicationSource2" } ] } ] }

以下相關資源可協助您使用此動作。