本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
教程:筛选拉取请求的分支名称以启动管道
在本教程中,您将创建一个连接到 GitHub .com存储库的管道,在该存储库中,源操作配置为使用筛选拉取请求的触发器配置启动管道。当指定分支发生指定的拉取请求事件时,您的管道就会启动。此示例说明如何创建允许筛选分支名称的管道。有关使用触发器的更多信息,请参阅管道中的触发器筛选 JSON (CLI)。有关使用 glob 格式的正则表达式模式进行筛选的更多信息,请参阅。使用语法中的 glob 模式
重要
作为创建管道的一部分,客户提供的 S3 工件存储桶将 CodePipeline 用于项目。(这与用于 S3 源操作的存储桶不同。) 如果 S3 工件存储桶与您的管道账户位于不同的账户中,请确保 S3 工件存储桶归其所有 Amazon Web Services 账户 ,该存储桶是安全且可靠的。
本教程通过CodeStarSourceConnection
操作类型连接到 GitHub .com。
先决条件
在开始之前,您必须执行以下操作:
-
使用您的 GitHub .com 账户创建 GitHub .com 存储库。
-
准备好您的 GitHub 凭证。当你使用 Amazon Web Services Management Console 来建立连接时,系统会要求你使用自己的 GitHub 凭据登录。
步骤 1:创建管道以启动指定分支的拉取请求
在此部分中,您将使用以下操作创建管道:
-
与您的 GitHub .com存储库的连接和操作的源阶段。
-
带有生成操作的 Amazon CodeBuild 生成阶段。
使用向导创建管道
-
登录 CodePipeline 控制台,网址为https://console.aws.amazon.com/codepipeline/
。 -
在欢迎页面、入门页面或管道页面上,选择创建管道。
-
在步骤 1:选择管道设置的管道名称中,输入
MyFilterBranchesPipeline
。 -
在管道类型中,保留默认选择 V2。管道类型有不同的特点和价格。有关更多信息,请参阅 管道类型。
-
在服务角色中,选择新建服务角色。
注意
如果您选择使用现有的 CodePipeline 服务角色,请确保已将
codeconnections:UseConnection
IAM权限添加到服务角色策略中。有关 CodePipeline 服务角色的说明,请参阅为 CodePipeline 服务角色添加权限。 -
在高级设置下,保留原定设置值。在构件存储中,选择默认位置以将默认构件存储(如指定为默认值的 Amazon S3 项目存储桶)用于为管道选择的区域中的管道。
注意
这不是源代码的源存储桶。这是管道的项目存储。每个管道都需要一个单独的构件存储,例如 S3 存储桶。
选择下一步。
-
在步骤 2:添加源阶段页面上,添加源阶段:
-
在源提供程序中,选择 GitHub (版本 2)。
-
在连接下,选择一个现有连接或创建一个新连接。要创建或管理 GitHub 源操作的连接,请参阅GitHub 连接。
-
在存储库名称中,选择您的 GitHub .com存储库的名称。
-
在 “触发器类型” 下,选择 “指定过滤器”。
在事件类型下,选择拉取请求。选择拉取请求下的所有事件,以便针对已创建、更新或已关闭的拉取请求发生事件。
在 “分支” 下的 “包含” 字段中输入
main*
。重要
将为 WebHookv2 事件配置以此触发器类型开头的管道,并且不会使用 Webhook 事件(对所有推送事件进行更改检测)来启动管道。
选择下一步。
-
-
在 “添加构建” 阶段的 “生成提供者” 中,选择Amazon CodeBuild。允许区域默认为管道区域。按照中的说明选择或创建构建项目教程:使用 Git 标签启动管道。此操作仅在本教程中用作创建管道所需的第二阶段。
-
在步骤 4:添加部署阶段页面上,选择跳过部署阶段,并通过再次选择跳过接受警告消息。选择下一步。
-
在步骤 5:审核中,选择创建管道。
第 2 步:在 GitHub .com 中创建并合并拉取请求以开始执行管道
在本节中,您将创建和合并拉取请求。这将启动您的管道,打开的拉取请求执行一次,已关闭的拉取请求执行一次。
创建拉取请求并启动管道
-
在 GitHub .com中,通过更改功能分支上的 README .md 并向该分支提出拉取请求来创建拉取请求。
main
使用类似的消息提交更改Update README.md for PR
。 -
管道从源版本开始,将拉取请求的源消息显示为 U README pdate .md for PR。
-
选择 History (历史记录)。在管道执行历史记录中,查看启动管道执行的CREATED和MERGED拉取请求状态事件。