触发器示例 - Amazon CodeCatalyst

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

触发器示例

以下示例说明如何在工作流程定义文件中添加不同类型的触发器。

示例:一个简单的代码推送触发器

以下示例显示了一个触发器,每当将代码推送到源存储库中的任何分支时,该触发器就会启动工作流程运行。

激活此触发器后,使用您要推送的分支(即目标分支)中的文件 CodeCatalyst 启动工作流程运行。

例如,如果您将提交推送到main,则使用工作流定义文件和其他源文件 CodeCatalyst 启动工作流程运行。main

再举一个例子,如果您将提交推送到feature-branch-123,则使用工作流定义文件和其他源文件 CodeCatalyst 启动工作流程运行。feature-branch-123

Triggers: - Type: PUSH
注意

如果您希望只有在推送到时才启动工作流程main,请参阅示例:一个简单的 “推到主线” 触发器

示例:一个简单的 “推到主线” 触发器

以下示例显示了一个触发器,每当将代码推送到源存储main库中的分支(推送到分支)时,该main触发器就会启动工作流程运行。

Triggers: - Type: PUSH Branches: - main

示例:一个简单的拉取请求触发器

以下示例显示了一个触发器,每当在源存储库中创建或修改拉取请求时,该触发器都会启动工作流程运行。

激活此触发器后,使用工作流程定义文件和您要提取的分支(即源分支)中的其他源文件 CodeCatalyst 启动工作流程运行。

例如,如果您使用名为的源分支feature-123和名为的目标分支创建拉取请求main,则使用工作流定义文件和其他源文件 CodeCatalyst 启动工作流程运行。feature-123

Triggers: - Type: PULLREQUEST Events: - OPEN - REVISION

示例:一个简单的计划触发器

以下示例显示了一个触发器,该触发器在每周一至周五的午夜 (UTC+0) 开始工作流程运行。

激活此触发器后,将为源存储库中包含带有此触发器的工作流程定义文件的每个分支 CodeCatalyst 启动一个工作流程运行。

例如,如果您的源存储库中有三个分支、mainrelease-v1feature-123、,并且每个分支都包含一个带有触发器的工作流程定义文件,则会 CodeCatalyst 启动三个工作流程运行:一个使用中的文件,另一个使用中的文件main,另一个使用中的文件release-v1,另一个使用中的文件,另一个使用中的文件feature-123

Triggers: - Type: SCHEDULE Expression: "0 0 ? * MON-FRI *"

有关可以在该Expression属性中使用的 cron 表达式的更多示例,请参阅Expression

示例:带有调度和分支的触发器

以下示例显示了每天下午 6:15(UTC+0)启动工作流程运行的触发器。

激活此触发器后,使用main分支中的文件 CodeCatalyst 启动工作流程运行,然后为以开头的每个分支开始额外运行release-

例如,如果您的源存储库中有名为mainrelease-v1bugfix-1、、和bugfix-2的分支,则会 CodeCatalyst 启动两个工作流程运行:一次使用中的文件main,另一次使用中的文件release-v1。它不会启动bugfix-1bugfix-1分支的工作流程运行。

Triggers: - Type: SCHEDULE Expression: "15 18 * * ? *" Branches: - main - release\-.*

有关可以在该Expression属性中使用的 cron 表达式的更多示例,请参阅Expression

示例:带有调度、推送和分支的触发器

以下示例显示了一个触发器,该触发器在每天午夜 (UTC+0) 以及每当将代码推送到分支时启动工作流程。main

在本示例中:

  • 工作流程运行从每天午夜开始。工作流程运行使用main分支中的工作流定义文件和其他源文件。

  • 每当你向main分支推送提交时,工作流程也会开始运行。工作流程运行使用工作流定义文件和目标分支中的其他源文件 (main)。

Triggers: - Type: SCHEDULE Expression: "0 0 * * ? *" Branches: - main - Type: PUSH Branches: - main

有关可以在该Expression属性中使用的 cron 表达式的更多示例,请参阅Expression

示例:带有拉动和分支的扳机

以下示例显示了一个触发器,每当有人打开或修改目标分支名main为的拉取请求时,该触发器就会启动工作流程运行。尽管Triggers配置中指定的分支是main,但工作流程运行将使用工作流定义文件和分支(即您要中提取的分支)中的其他源文件。

Triggers: - Type: PULLREQUEST Branches: - main Events: - OPEN - REVISION

示例:带有拉动、分支和 “CLOSED” 事件的触发器

以下示例显示了一个触发器,该触发器会在以开头的分支上关闭拉取请求时启动工作流程运行main

在本示例中:

  • 当您关闭以开头的目标分支的拉取请求时main,工作流程会自动开始运行,该工作流程将使用(现已关闭)源分支中的工作流程定义文件和其他源文件。

  • 如果您已将源存储库配置为在合并拉取请求后自动删除分支,则这些分支将永远没有机会进入CLOSED状态。这意味着合并的分支不会激活拉取请求CLOSED触发器。在这种情况下,激活CLOSED触发器的唯一方法是在不合并拉取请求的情况下关闭拉取请求。

Triggers: - Type: PULLREQUEST Branches: - main.* Events: - CLOSED

示例:带有推送、分支和文件的触发器

以下示例显示了一个触发器,每当对main分支上的文件或src目录中的任何filename.txt文件进行更改时,该触发器就会启动工作流程运行。

激活此触发器后,使用main分支中的工作流定义文件和其他源文件 CodeCatalyst 启动工作流程运行。

Triggers: - Type: PUSH Branches: - main FilesChanged: - filename.txt - src\/.*