CodeCommit - AWS CodePipeline

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

CodeCommit

在配置的 CodeCommit 存儲庫和分支上進行新的提交時啟動管道。

如果您使用控制台來建立或編輯管道,請 CodePipeline 建立一個 CodeCommit CloudWatch 事件規則,以便在存放庫中發生變更時啟動管道。

您必須先建立存 CodeCommit 放庫,然後才能透過 CodeCommit 動作連接管道。

偵測到程式碼變更之後,您有下列選擇將程式碼傳遞給後續動作:

  • 預設 — 設定 CodeCommit 來源動作以輸出含有提交淺層副本的 ZIP 檔案。

  • 完整複製 — 設定來源動作,將 Git URL 參考輸出至儲存庫,以供後續動作使用。

    目前,Git URL 參考只能由下游 CodeBuild 動作用來複製存放庫和相關聯的 Git 中繼資料。嘗試將 Git URL 參考傳遞給非CodeBuild 動作會導致錯誤。

動作類型

  • 類別:Source

  • 擁有者:AWS

  • 提供者:CodeCommit

  • 版本:1

組態參數

RepositoryName

必要:是

要偵測來源變更的儲存庫名稱。

BranchName

必要:是

要偵測來源變更的分支名稱。

PollForSourceChanges

必要:否

PollForSourceChanges控制是否 CodePipeline 輪詢 CodeCommit存放庫中的來源變更。我們建議您改用 E CloudWatch vents 來偵測來源變更。如需有關配置 CloudWatch 事件的詳細資訊,請參閱移轉輪詢管線 (CodeCommit 來源) (CLI)移轉輪詢管線 (CodeCommit 來源) (AWS CloudFormation 範本)

重要

如果您打算配置 CloudWatch 事件規則,則必須將其設定PollForSourceChanges為以false避免重複的管線執行。

此參數的有效值:

  • true:如果設置,則 CodePipeline 輪詢您的存儲庫以進行源更改。

    注意

    如果省略PollForSourceChanges,則 CodePipeline 預設會輪詢儲存庫以進行來源變更。此行為同於包含 PollForSourceChanges 且設定為 true

  • false:如果設定,則 CodePipeline 不會輪詢您的儲存庫是否有來源變更。如果您想要設定 CloudWatch 事件規則以偵測來源變更,請使用此設定。

OutputArtifactFormat

必要:否

輸出成品格式。值可以是CODEBUILD_CLONE_REFCODE_ZIP。如果未指定,預設值為 CODE_ZIP

重要

CODEBUILD_CLONE_REF此選項只能由 CodeBuild下游動作使用。

如果您選擇此選項,則需要將codecommit:GitPull權限新增至您的 CodeBuild 服務角色,如中所示新增 CodeCommit來源動作的 CodeBuild GitClone 權限。您還需要將codecommit:GetRepository權限添加到您的 CodePipeline服務角色,如中所示將許可新增至 CodePipeline 服務角色。如需說明如何使用「完整複製」選項的教學課程,請參閱教學課程:搭 CodeCommit 配管線來源使用完整複製

Input artifacts (輸入成品)

  • 人工因素數目:0

  • 描述:輸入成品不適用於此動作類型。

輸出成品

  • 人工因素數目:1

  • 描述:此動作的輸出成品是 ZIP 檔案,其中包含在指定為管道執行來源修訂的遞交上所設定的儲存庫和分支的內容。從存放庫產生的成品是 CodeCommit 動作的輸出成品。中的原始程式碼提交 ID 會顯示 CodePipeline 為觸發管線執行的來源修訂。

輸出變數

設定時,此動作會產生變數,供管道中的下游動作的動作組態所參考。即使此動作沒有命名空間,此動作產生的變數仍可視為輸出變數。您可以設定動作的命名空間,讓這些變數可供下游動作的組態使用。

如需詳細資訊,請參閱 Variables

CommitId

觸發管線執行的 CodeCommit 提交 ID。遞交 ID 是遞交的完整 SHA。

CommitMessage

與觸發管道執行的遞交相關聯的描述訊息 (如果有的話)。

RepositoryName

執行觸發管線之提交的 CodeCommit 儲存庫名稱。

BranchName

進行來源變更之 CodeCommit 儲存庫的分支名稱。

AuthorDate

遞交的撰寫日期 (時間戳記格式)。

如需 Git 中的作者和遞交者之間差異的詳細信息,請參閱 Scott Chacon 和 Ben Straub 共同撰寫的 Pro Git 中的檢視提交的歷史記錄

CommitterDate

遞交的遞交日期 (時間戳記格式)。

如需 Git 中的作者和遞交者之間差異的詳細信息,請參閱 Scott Chacon 和 Ben Straub 共同撰寫的 Pro Git 中的檢視提交的歷史記錄

動作組態範例

預設輸出人工因素格式的範例

YAML
Actions: - OutputArtifacts: - Name: Artifact_MyWebsiteStack InputArtifacts: [] Name: source Configuration: RepositoryName: MyWebsite BranchName: main PollForSourceChanges: 'false' RunOrder: 1 ActionTypeId: Version: '1' Provider: CodeCommit Category: Source Owner: AWS Name: Source
JSON
{ "Actions": [ { "OutputArtifacts": [ { "Name": "Artifact_MyWebsiteStack" } ], "InputArtifacts": [], "Name": "source", "Configuration": { "RepositoryName": "MyWebsite", "BranchName": "main", "PollForSourceChanges": "false" }, "RunOrder": 1, "ActionTypeId": { "Version": "1", "Provider": "CodeCommit", "Category": "Source", "Owner": "AWS" } } ], "Name": "Source" },

完整複製輸出加工品格式的範例

YAML
name: Source actionTypeId: category: Source owner: AWS provider: CodeCommit version: '1' runOrder: 1 configuration: BranchName: main OutputArtifactFormat: CODEBUILD_CLONE_REF PollForSourceChanges: 'false' RepositoryName: MyWebsite outputArtifacts: - name: SourceArtifact inputArtifacts: [] region: us-west-2 namespace: SourceVariables
JSON
{ "name": "Source", "actionTypeId": { "category": "Source", "owner": "AWS", "provider": "CodeCommit", "version": "1" }, "runOrder": 1, "configuration": { "BranchName": "main", "OutputArtifactFormat": "CODEBUILD_CLONE_REF", "PollForSourceChanges": "false", "RepositoryName": "MyWebsite" }, "outputArtifacts": [ { "name": "SourceArtifact" } ], "inputArtifacts": [], "region": "us-west-2", "namespace": "SourceVariables" }

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