全部产品

触发事件与触发分支

你可以使用触发事件和触发分支的配置来对代码源Webhook事件进行过滤。

不同代码源支持的触发事件

阿里云Code

云效Codeup

通用Git

Github

Gitlab

Coding

Bitbucket

自建Gitlab

代码提交

Tag创建

合并请求完成后

合并请求 新建/更新

触发分支

通过配置 触发分支,可以对代码源的触发事件进行过滤,下面针对每一种事件进行解释:

代码提交

从本地 push 分支到远程分支(或在代码管理平台的Web端进行文件修改),比如从本地的master push到 origin/master。Flow 会将 push 的目标分支与触发分支进行匹配,如果匹配成功,则会触发流水线,并使用 push 的目标分支作为流水线运行时使用的分支。

Tag创建

从本地 push tag 到服务端 tag(或在代码管理平台的 Web 端进行 Tag 创建),比如将本地的tag release/0.0.1 push 服务端。Flow 会将 push 的目标 Tag 名称与触发分支进行匹配,如果匹配成功,则会触发流水线,并使用目标 Tag 作为流水线运行时使用的代码版本。

合并请求 新建/更新

在代码管理平台的 Web 端创建合并请求,Gitlab 或者 Codeup支持此类事件。比如从远程的 dev 分支(源分支)发起一个合并请求到 master 分支(源分支)。Flow 会将合并请求的目标分支与触发分支进行匹配,如果匹配成功,则会触发流水线,并使用源分支作为流水线运行时使用的分支。

对于 Codeup 来说,也可以使用 git-repo来触发合并请求的创建。与普通的合并请求相比,使用 git-repo 创建合并请求的源分支不是一个固定的分支,而是一个特殊的 ref,比如refs/merge-requests/123/head。对于这种情况,Flow 在流水线运行时,会将该 ref 检出到一个临时的分支,进行后续的构建。

合并请求完成后

与合并“合并请求 新建/更新”相比,唯一的差别是:Flow 使用目标分支作为流水线运行时使用的分支。

触发分支的匹配规则

代码提交触发的触发分支支持正则表达式。

你可以输入一个普通分支,比如master或者dev。也可以使用Java语言支持的正则表达式语法,以下是几个示例。

如果想匹配多个分支,比如 master 和 dev,可以输入 master|dev

如果想匹配以 feature 开头的分支,可以输入 ^feature.*

完整的正则表达式支持请参见:https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html

正则表达式在线验证工具:https://www.freeformatter.com/java-regex-tester.html