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

触发事件与触发条件

最近更新时间2024.03.25 16:23:56

首次发布时间2023.07.12 20:22:45

本文为您介绍代码源触发支持的触发事件、每个触发事件的含义、以及触发条件的匹配规则。

  • 触发事件
    通过配置触发事件,可对代码源的 Webhook 事件进行过滤。各代码源支持的触发事件如下。
    GiteeGitLabGitHub通用 GitGerritCodeupBitbucketCloud
    代码 Push✔️✔️✔️✔️✔️
    TAG 创建✔️✔️✔️✔️✔️
    合并请求✔️✔️✔️✔️✔️✔️

    说明

    通用 Git 不支持直接使用代码源触发功能。如需实现代码源事件触发,请配置 普通 Webhook 触发,并在自己的代码仓库侧进一步配置要推送的事件。

  • 触发条件
    每种触发事件支持设置对应的触发条件。触发条件通常是分支名或 TAG 关键字。通过设置触发条件,可对代码源的 Webhook 事件进行进一步过滤。

代码 Push

  • 代码 Push:仓库中发生任何 Push 事件,都将触发流水线运行。例如:从本地 Push 分支到对应的远程分支、在代码管理平台修改文件等。流水线运行的分支是 Push 的目标分支。
  • 代码 Push + 触发条件:当 Push 的目标分支与触发条件匹配成功时,触发流水线运行。

说明

Codeup 代码源支持添加 文件路径 作为代码 Push 事件的过滤条件。添加文件路径后,仅特定代码路径下的 Push 事件可触发流水线运行。

  • 文件路径默认为根目录下路径,无需以/开头。
  • 文件路径支持填写多个,支持正则表达式,匹配规则与下文 触发条件的匹配规则 相同。
  • 同时添加代码 Push 的触发条件和文件路径时,过滤条件为“且”的关系。例如:代码 Push 的触发条件为 Master,文件路径为 demo/a.txt 和 demo/b.txt。只有 Mater 分支下的 demo/a.txt 或 demo/b.txt 文件发生 Push 事件时,会触发流水线运行。

TAG 创建

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

合并请求

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

触发条件的匹配规则

  • 每个触发条件的匹配规则如下:

    • 触发条件表达式中不含特殊元字符则为 精准匹配
    • 含以下特殊元字符则为 Golang 正则匹配

    注意

    Golang 正则表达式包含的元字符有:

    • 基础元字符:., \, *, +, ?, ^, $, [], {}, |, ()
    • 复杂元字符:[^], [-], (?:), (?!), (?=), (?<=), (?<!)

    例如:

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

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