CodeCommit 源操作参考 - Amazon CodePipeline
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

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 来源)(Amazon 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

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

CommitterDate

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

操作配置示例

默认输出构件格式的示例

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

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