示例:工作流中的触发器 - Amazon CodeCatalyst

亚马逊 CodeCatalyst 不再向新买家开放。现有客户可以继续正常使用该服务。有关更多信息,请参阅 如何从中迁移 CodeCatalyst

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

示例:工作流中的触发器

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

有关触发器的更多信息,请参阅使用触发器自动启动工作流运行

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

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

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

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

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

Triggers: - Type: PUSH
注意

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

示例:一个简单的“push to 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)启动工作流运行的触发器。

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

例如,如果您的源存储库中有名为 mainrelease-v1bugfix-1bugfix-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 分支上的 filename.txt 文件或 src 目录中的任何文件进行更改时,该触发器就会启动工作流运行。

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

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

示例:手动触发器

要配置手动触发器,请在工作流定义文件中省略 Triggers 部分。如果没有此部分,用户将被强制要求通过在 CodeCatalyst 控制台中选择运行按钮来手动启动工作流。有关更多信息,请参阅手动启动工作流运行

示例:CI/CD 多工作流设置中的触发器

此示例介绍当您想要使用单独的 Amazon CodeCatalyst 工作流进行持续集成(CI)和持续部署(CD)时,如何设置触发器。

在此场景中,您设置两个工作流:

  • CI 工作流 – 在创建或修订拉取请求时,此工作流会构建和测试您的应用程序。

  • CD 工作流 – 在合并拉取请求时,此工作流会构建和部署您的应用程序。

CI 工作流的定义文件如下所示:

Triggers: - Type: PULLREQUEST Branches: - main Events: - OPEN - REVISION Actions: BuildAction: instructions-for-building-the-app TestAction: instructions-for-test-the-app

Triggers 代码表明,每当软件开发人员创建拉取请求(或修改拉取请求)来要求将其功能分支合并到分支 main 时,就会自动启动工作流运行。CodeCatalyst 使用源分支(即功能分支)中的源代码启动工作流运行。

CD 工作流的定义文件如下所示:

Triggers: - Type: PUSH Branches: - main Actions: BuildAction: instructions-for-building-the-app DeployAction: instructions-for-deploying-the-app

Triggers 代码指示在出现合并到 main 时自动启动工作流。CodeCatalyst 使用 main 分支中的源代码启动工作流运行。