本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
向工作流程添加触发器
按照以下说明向您的 Amazon CodeCatalyst 工作流程添加推送、拉取或计划触发器。
有关触发器的更多信息,请参阅启动工作流程使用触发器自动运行。
- Visual
-
添加触发器(可视化编辑器)
打开 CodeCatalyst 控制台,网址为 https://codecatalyst.aws/
。 -
选择您的项目。
-
在导航窗格中,选择 C I/CD,然后选择工作流程。
-
选择工作流程的名称。您可以按定义工作流程的源存储库或分支名称进行筛选,也可以按工作流程名称或状态进行筛选。
-
选择编辑。
-
选择 “视觉”。
-
在工作流程图中,选择 “源和触发器” 框。
-
在配置窗格中,选择添加触发器。
-
在添加触发器对话框中,在字段中提供信息,如下所示。
触发器类型
指定触发器的类型。您可以使用以下值之一:
-
推送(可视化编辑器)或
PUSH
(YAML编辑器)当更改推送到源存储库时,推送触发器会启动工作流程运行。工作流程运行将使用您要推送到的分支(即目标分支)中的文件。
-
拉取请求(可视化编辑器)或
PULLREQUEST
(YAML编辑器)在源存储库中打开、更新或关闭拉取请求时,拉取请求触发器会启动工作流程运行。工作流程运行将使用你从中提取的分支(即源分支)中的文件。
-
日程安排(可视化编辑器)或
SCHEDULE
(YAML编辑器)计划触发器按您指定的 cron 表达式定义的计划启动工作流运行。将使用分支的文件为源存储库中的每个分支启动单独的工作流程运行。(要限制触发器激活的分支,请使用 “分支” 字段(可视化编辑器)或
Branches
属性(YAML编辑器)。)配置计划触发器时,请遵循以下准则:
-
每个工作流程只能使用一个计划触发器。
-
如果您在自己的 CodeCatalyst 空间中定义了多个工作流程,我们建议您同时启动的工作流程不超过 10 个。
-
确保将触发器的 cron 表达式配置为两次运行之间留出足够的时间。有关更多信息,请参阅 Expression。
-
有关示例,请参阅示例:工作流程中的触发器。
拉取请求的事件
仅当您选择了拉取请求触发器类型时,才会显示此字段。
指定将启动工作流程运行的拉取请求事件的类型。以下是有效值:
-
已创建拉取请求(可视化编辑器)或
OPEN
(YAML编辑器)创建拉取请求后,工作流程就会启动。
-
拉取请求已关闭(可视化编辑器)或
CLOSED
(YAML编辑器)当拉取请求关闭时,工作流程就会开始运行。
CLOSED
事件的行为很棘手,最好通过一个例子来理解。请参阅示例:带有拉动、分支和 “CLOSED” 事件的触发器了解更多信息。 -
对拉取请求(可视化编辑器)或
REVISION
(YAML编辑器)进行了新的修订创建拉取请求的修订版后,工作流程运行即开始。第一个修订版是在创建拉取请求时创建的。之后,每当有人将新的提交推送到拉取请求中指定的源分支时,就会创建一个新的修订版。如果您在拉取请求触发器中包含该
REVISION
事件,则可以省略该OPEN
事件,因为REVISION
是的超集。OPEN
您可以在同一个拉取请求触发器中指定多个事件。
有关示例,请参阅示例:工作流程中的触发器。
计划
仅当您选择了计划触发器类型时,才会显示此字段。
指定 cron 表达式,用于描述您希望计划的工作流程何时运行。
中的 Cron 表达式 CodeCatalyst 使用以下六字段语法,其中每个字段用空格分隔:
minutes
hours
days-of-month
month
days-of-week
year
cron 表达式的示例
分钟 小时 一个月中的天数 月 一周中的几天 年 含义 0
0
?
*
MON-FRI
*
在每周一至周五的午夜 (UTC+0) 运行工作流程。
0
2
*
*
?
*
每天凌晨 2:00 (UTC+0) 运行工作流程。
15
22
*
*
?
*
每天晚上 10:15 (UTC+0) 运行工作流程。
0/30
22-2
?
*
SAT-SUN
*
周六至周日每隔 30 分钟运行一次工作流程,时间为起始日晚上 10:00 至次日凌晨 2:00 (UTC+0)。
45
13
L
*
?
2023-2027
在 2023 年至 2027 年(含)之间的当月最后一天下午 1:45(UTC+0)运行工作流程。
在中指定 cron 表达式时 CodeCatalyst,请务必遵循以下准则:
-
为每个
SCHEDULE
触发器指定一个 cron 表达式。 -
在编辑器中用双引号 (
"
) 将 cron 表达式括起来。YAML -
在协调世界时 (UTC) 中指定时间。不支持其他时区。
-
配置两次运行之间的间隔至少为 30 分钟。不支持更快的节奏。
-
指定
days-of-month
或者days-of-week
字段,但不能两者兼而有之。如果您在其中一个字段中指定值或星号 (*
),则必须在另一个字段中使用问号 (?
)。星号表示 “全部”,问号表示 “任何”。
有关 cron 表达式的更多示例以及有关通配符(如
?
、和)的信息*
L
,请参阅《亚马逊 EventBridge 用户指南》中的 Cron 表达式参考。 EventBridge 和中的 Cron 表达式 CodeCatalyst 的工作方式完全相同。有关计划触发器的示例,请参阅示例:工作流程中的触发器。
分支和分支模式
(可选)
指定触发器监控的源存储库中的分支,以便知道何时开始工作流程运行。你可以使用正则表达式模式来定义你的分支名称。例如,用于匹配所有
main.*
以开头的分支main
。要指定的分支因触发器类型而异:
-
对于推送触发器,请指定要推送到的分支,即目标分支。将使用匹配分支中的文件,为每个匹配的分支启动一个工作流程。
示例:
main.*
、mainline
-
对于拉取请求触发器,请指定要推送到的分支,即目标分支。每个匹配的分支将使用工作流定义文件和源分支(不是匹配的分支)中的源文件启动一个工作流程运行。
示例:
main.*
、mainline
、v1\-.*
(匹配以开头的分支v1-
) -
对于计划触发器,请指定包含您希望计划运行使用的文件的分支。将使用匹配分支中的工作流程定义文件和源文件,为每个匹配的分支启动一个工作流程。
示例:
main.*
、version\-1\.0
注意
如果您未指定分支,则触发器会监视源存储库中的所有分支,并将使用以下中的工作流程定义文件和源文件启动工作流程运行:
-
你要推送到的分支(用于推送触发器)。有关更多信息,请参阅 示例:一个简单的代码推送触发器。
-
您要从中提取的分支(用于拉取请求触发器)。有关更多信息,请参阅 示例:一个简单的拉取请求触发器。
-
所有分支(用于计划触发器)。源存储库中的每个分支将启动一个工作流程运行。有关更多信息,请参阅 示例:一个简单的计划触发器。
有关分支和触发器的更多信息,请参阅触发器和分支的使用指南。
有关更多示例,请参阅示例:工作流程中的触发器。
文件已更改
仅当您选择了推送或拉取请求触发器类型时,才会显示此字段。
指定触发器监控的源存储库中的文件或文件夹,以便知道何时开始工作流程运行。您可以使用正则表达式来匹配文件名或路径。
有关示例,请参阅示例:工作流程中的触发器。
-
-
(可选)选择 “验证” 以在提交之前验证工作流程的YAML代码。
-
选择 “提交”,输入提交消息,然后再次选择 “提交”。
- YAML
-
添加触发器(YAML编辑器)
打开 CodeCatalyst 控制台,网址为 https://codecatalyst.aws/
。 -
选择您的项目。
-
在导航窗格中,选择 C I/CD,然后选择工作流程。
-
选择工作流程的名称。您可以按定义工作流程的源存储库或分支名称进行筛选,也可以按工作流程名称或状态进行筛选。
-
选择编辑。
-
选择YAML。
-
以以下示例为指导,添加
Triggers
章节和基础属性。有关更多信息,请参阅 工作流程YAML定义中的 Triggers。代码推送触发器可能如下所示:
Triggers: - Type: PUSH Branches: - main
拉取请求触发器可能如下所示:
Triggers: - Type: PULLREQUEST Branches: - main.* Events: - OPEN - REVISION - CLOSED
计划触发器可能如下所示:
Triggers: - Type: SCHEDULE Branches: - main.* # Run the workflow at 1:15 am (UTC+0) every Friday until the end of 2023 Expression: "15 1 ? * FRI 2022-2023"
有关可在
Expression
属性中使用的 cron 表达式的更多示例,请参阅Expression。有关推送、拉取请求和调度触发器的更多示例,请参阅示例:工作流程中的触发器。
-
(可选)选择 “验证” 以在提交之前验证工作流程的YAML代码。
-
选择 “提交”,输入提交消息,然后再次选择 “提交”。