You need to enable JavaScript to run this app.
导航

触发事件与触发条件

最近更新时间2023.12.26 13:59:12

首次发布时间2021.08.05 12:05:25

本文为您介绍 Webhook 触发规则支持的触发事件含义及触发条件的匹配规则。

  • 触发事件
    • Gitee、Gitlab、GitHub、Codeup 代码源,支持 4 种触发事件。您可以同时选择多个触发事件。
      • 代码提交
      • TAG 创建
      • 合并请求完成后
      • 合并请求新建/更新
    • Gerrit 代码源支持 1 种触发事件:Gerrit 请求合并。
  • 触发条件
    每种触发事件支持设置对应的触发条件。触发条件通常是分支名或 TAG 关键字。通过设置触发条件,您可以对代码源的触发事件进行过滤。

代码提交

  • 代码提交:仓库中发生任何 push 事件,都会触发流水线运行,使用的分支为触发 push 的分支。
  • 代码提交 + 触发条件:当 push 的目标分支与触发条件匹配成功时,触发流水线运行。

TAG 创建

  • TAG 创建:仓库中创建 TAG、更新 TAG 均会触发流水线运行,并使用目标 TAG 作为流水线运行的代码版本。
  • TAG 创建 + 触发条件:当创建或更新的 TAG 名称与触发条件匹配成功时,触发流水线运行。

合并请求完成后

  • 合并请求完成后:仓库中发生任何合并请求完成事件,都会触发流水线运行。例如:从远程的 dev 分支(源分支)发起一个合并请求到 master 分支(目标分支)。流水线运行的分支是合并完成后的目标分支。
  • 合并请求完成后 + 触发条件: 当被合入的目标分支与触发条件匹配成功时,触发流水线运行。

合并请求新建/更新

  • 合并请求新建/更新: 仓库中发生任何合并请求新建/更新事件,都会触发流水线运行。该条件触发运行的流水线分支与 合并请求完成后 相同,都是合并完成后的目标分支。

    说明

    通常发起合并请求后,需要经过审核,才能完成合并。合并请求新建/更新 的好处是,可以先运行流水线,检验合并后的代码行为是否符合预期,若不符合预期,可以选择拒绝接受该合并请求,降低代码合并的风险。

  • 合并请求新建/更新 + 触发条件: 当被合入的目标分支与触发条件匹配成功时,触发流水线运行。

Gerrit 请求合并

  • Gerrit 请求合并:仓库中发生任何合并请求完成事件,都会触发流水线运行。例如:从远程的 dev 分支(源分支)发起一个合并请求到 master 分支(目标分支)。流水线运行的分支是合并完成后的目标分支。
  • Gerrit 请求合并 + 触发条件:当被合入的目标分支与触发条件匹配成功时,触发流水线运行。

触发条件的匹配规则

  • 每个触发条件的匹配规则为 Golang 正则匹配
    例如:

    触发事件触发条件含义
    代码提交feature任一包含feature的分支(例如:featurefeature01)提交代码,都会触发流水线运行。
    代码提交^feature$feature分支提交代码,会触发流水线运行。
    代码提交feature|dev|sit任一包含featuredevsit的分支提交代码,都会触发流水线运行。
    TAG 创建v1.0.表示匹配除了换行符之外的任意单个字符。故v1.0v1a0v110的 TAG 创建,都会触发流水线运行。
    TAG 创建^v1\.0$v1.0 的 TAG 创建,会触发流水线运行。
    TAG 创建^SNAPSHOT-V.*SNAPSHOT-V 为前缀命名的 TAG 创建,都会触发流水线运行。
  • 支持添加多个触发条件,多个触发条件之间为“或”的关系。
    例如:

    触发事件触发条件1触发条件2含义
    代码提交featuredev任一包含featuredev的分支提交代码,都会触发流水线运行。
    代码提交^feature.*^dev.*所有以feature为前缀命名的分支或以dev为前缀命名的分支提交代码,都会触发流水线运行。