本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
触发器示例
以下示例说明如何在工作流程定义文件中添加不同类型的触发器。
主题
示例:一个简单的代码推送触发器
以下示例显示了一个触发器,每当将代码推送到源存储库中的任何分支时,该触发器就会启动工作流程运行。
激活此触发器后,使用您要推送到的分支(即目标分支)中的文件 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 启动一个工作流程运行。
例如,如果您的源存储库中有三个分支、main
release-v1
feature-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-
。
例如,如果您的源存储库中有名为main
release-v1
bugfix-1
、、和bugfix-2
的分支,则会 CodeCatalyst 启动两个工作流程运行:一次使用中的文件main
,另一次使用中的文件release-v1
。它不会启动bugfix-1
和bugfix-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\/.*