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