

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

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

# 触发器和分支的使用准则
<a name="workflows-add-trigger-considerations"></a>

本节介绍设置包含分支的 Amazon CodeCatalyst 触发器时的一些主要指南。

有关触发器的更多信息，请参阅[使用触发器自动启动工作流运行](workflows-add-trigger.md)。
+ **准则 1：**对于推送和拉取请求触发器，如果要指定分支，您必须在触发器配置中指定目标（即“至”）分支。切勿指定源（即“自”）分支。

  在以下示例中，从任何分支推送至 `main` 都会激活工作流。

  ```
  Triggers:
    - Type: PUSH
      Branches:
        - main
  ```

  在以下示例中，自任何分支拉取请求到 `main` 中都会激活工作流。

  ```
  Triggers:
    - Type: PULLREQUEST
      Branches:
        - main
      Events:
        - OPEN
        - REVISION
  ```
+ **准则 2：**对于推送触发器，激活工作流后，工作流将使用*目标*分支中的工作流定义文件和源文件运行。
+ **准则 3：**对于拉取请求触发器，激活工作流后，工作流将使用*源*分支中的工作流定义文件和源文件运行（即使您在触发器配置中指定了目标分支）。
+ **准则 4：**完全相同的触发器，在一个分支中能够运行，但在另一个分支中可能无法运行。

  请考虑以下推送触发器：

  ```
  Triggers:
    - Type: PUSH
      Branches:
        - main
  ```

  如果包含此触发器的工作流定义文件存在于 `main` 中，然后被克隆到 `test`，则工作流永远不会使用 `test` 中的文件自动启动（尽管您可以*手动*启动工作流以使其使用 `test` 中的文件）。请查看**准则 2** 来了解为什么工作流永远不会使用 `test` 中的文件自动运行。

  还要考虑以下拉取请求触发器：

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

  如果包含此触发器的工作流定义文件位于 `main` 中，则工作流将永远不会使用 `main` 中的文件运行。（但是，如果您在 `main` 中创建 `test` 分支，则工作流将使用 `test` 中的文件运行。） 请查看**准则 3** 以了解原因。