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存储库以获取源代码更改。我们建议您改用 “ CloudWatch 事件” 来检测源代码的更改。有关配置 CloudWatch 事件的更多信息,请参阅迁移轮询管道(CodeCommit 来源)(CLI)迁移轮询管道(CodeCommit 来源)(AWS CloudFormation 模板)

重要

如果要配置 CloudWatch 事件规则,则必须将设置为PollForSourceChangesfalse以避免重复的管道执行。

此参数的有效值:

  • true: 如果已设置,则会 CodePipeline 轮询您的存储库以了解源代码更改。

    注意

    如果省略PollForSourceChanges,则 CodePipeline 默认为轮询存储库是否有源更改。如果包括 PollForSourceChanges 并将其设置为 true,则此行为相同。

  • false: 如果已设置,则 CodePipeline 不会轮询您的存储库以了解源代码更改。如果您打算配置 CloudWatch 事件规则以检测源更改,请使用此设置。

OutputArtifactFormat

必需:否

输出构件格式。值可以是 CODEBUILD_CLONE_REFCODE_ZIP。如果未指定,则默认为 CODE_ZIP

重要

CODEBUILD_CLONE_REF选项只能由 CodeBuild下游操作使用。

如果选择此选项,则需要向您的 CodeBuild 服务角色添加codecommit:GitPull权限,如所示为 CodeCommit源操作添加 CodeBuild GitClone 权限。您还需要为 CodePipeline服务角色添加codecommit:GetRepository权限,如所示向 CodePipeline 服务角色添加权限。如需查看教程以了解如何使用完整克隆选项,请参阅教程:使用带有 CodeCommit 管道源的完整克隆

输入构件

  • 构件数:0

  • 描述:输入构件不适用于此操作类型。

输出构件

  • 构件数:1

  • 描述:此操作的输出对象是一个ZIP文件,其中包含已配置的存储库和提交时分支的内容,指定为管道执行的源修订版。从存储库生成的构件是 CodeCommit 操作的输出对象。源代码提交 ID 显示 CodePipeline 为触发管道执行的源修订版。

输出变量

配置后,此操作会生成变量,该变量可由管道中下游操作的操作配置引用。此操作生成的变量可视为输出变量,即使操作没有命名空间也是如此。您可以使用命名空间配置操作,以使这些变量可用于下游操作的配置。

有关更多信息,请参阅 变量参考

CommitId

触发管道执行的 CodeCommit 提交 ID。提交IDs是SHA提交的全部内容。

CommitMessage

与触发管道执行的提交相关联的描述消息(如果有)。

RepositoryName

触发管道的提交所在 CodeCommit 存储库的名称。

BranchName

进行源代码更改的 CodeCommit 存储库的分支名称。

AuthorDate

授权提交的日期,采用时间戳格式。

有关 Git 中作者和提交者之间区别的更多信息,请参阅 Pro Git 中由 Scott Chacon 和 Ben Straub 撰写的查看提交历史记录

CommitterDate

进行提交的日期,采用时间戳格式。

有关 Git 中作者和提交者之间区别的更多信息,请参阅 Pro Git 中由 Scott Chacon 和 Ben Straub 撰写的查看提交历史记录

操作配置示例

默认输出构件格式的示例

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" }

下列相关资源在您使用此操作的过程中会有所帮助。