跳到主要内容

条件执行

了解如何配置流水线与操作在特定条件下运行

流水线和操作可以配置在特定条件下运行。Buddy让开发人员可以完全灵活地选择应该运行的内容、地点和时间,让您甚至可以覆盖最复杂的交付工作流程。

流水线中的条件执行

为特定分支运行

此设置最常用于部署流水线。例如,生产服务器的部署通常从主分支运行。将流水线分配给“主分支”将使Buddy仅上传来自该分支的更改:

新添流水线

测试存储仓中所有更改

Buddy可以充当“经典”CI服务器,自动测试来自存储仓中所有分支的新修订。为此,请将流水线分配为通配符(*):

流水线触发模式

运行于标签推送

完成开发里程碑后,应用程序通常会收到一个新标签。在Buddy您可以创建一个专用流水线,该流水线仅在将新标签推送到存储仓时才会运行:

标签推送

运行主分支除外的所有分支

Buddy支持正则表达式,可让您为流水线创建模式。例如,为模式输入(^((?!master$).)*$)将强制流水线除了主分支(Master)之外的所有分支运行:

分支选择

仅运行流水线中的最新执行

默认情况下,流水线一次不能超过一个执行。如果另一个用户在执行过程中触发了相同的流水线,则第二次执行将排队,直到第一次执行结束后才会开始。如果队列中有更多执行(例如5个),Buddy将只运行最后一个执行(第5个)并跳过之前的执行(第1-4个)。

您可以通过查看流水线设置中的始终运行所有排队执行对其禁用,例如,如果您想查看GitHub上所有提交状态

Pipeline run conditions

信息

如果将流水线分配给通配符,则仅跳过同一分支中的执行。例如,如果您的流水线在主分支上执行1次,在暂存分支上排队执行3次,则Buddy将为主分支运行执行并为暂存分支跳过2次执行。

操作中的条件执行

路径发生变化时运行

可以根据存储仓中的变更集运行流水线操作。例如,如果您有一个编译资源的操作,如果需要编译的路径没有更改,则可以跳过。

此选项在更多选项 → 触发条件下的操作详细信息中可用。如果要激活,请选择在存储仓路径更改时执行并提供Buddy应监控更改的存储仓中的路径:

Trigger conditions

根据上一个动作结果运行

  1. 添加自定义变量(例如 $RESULT)并将其设置为可设置。
  2. 添加构建操作并输入将定义变量值的条件: Adding a build action
  3. 添加另一个操作并检查变量值是否正确: Trigger conditions

根据流水线运行时传递的参数运行

您可以将操作添加到流水线,这允许您为要运行的执行设置参数

例如,您可以设置一个参数来通知您的客户有关Slack频道上的新版本。然后,在Slack操作中使用触发条件来检查该操作是否应该执行: Action details

根据环境变量值运行

也可以根据环境变量值运行操作。例如,您可以在通配符流水线中定义$BUDDY_EXECUTION_BRANCH仅为特定分支运行集成测试。

此选项在更多选项触发条件下的操作详细信息中可用。 要激活请选择根据环境变量值执行,输入变量,并定义它必须满足的条件才能运行该操作:

Value dependent conditions

信息

您可以使用Buddy的默认变量、在传递参数操作中定义的参数以及在流水线设置中定义的自定义变量

仅针对特定分支运行

使用默认环境变量BUDDY_EXECUTION_BRANCH创建条件: Specific branch trigger

仅当流水线由特定人员执行时才运行

使用默认环境变量BUDDY_INVOKER_ID创建条件: Pipeline execution

仅在提交消息包含特定词组时运行

使用默认环境变量BUDDY_EXECUTION_REVISION_MESSAGE创建条件: Commit message trigger