代码源触发

代码源触发

本文介绍如何配置流水线代码源触发,以及代码源触发事件和过滤条件。

配置代码源触发

开启代码源触发,配置 WebHook 后,在相应的代码地址和分支上提交代码后就可以触发流水线的运行了。

云效 Codeup 开启代码源触发

  1. 在 Flow 流水线,点击编辑流水线,点击编辑代码源。

  2. 点击 开启代码源触发,Flow 会自动将 Webhook 地址插入到云效 Codeup 相应代码库中。

imageimage

其他代码类型开启代码源触发

1. 进入目标 Flow 流水线编辑页,点击编辑代码源。开启代码源触发,并将对应的 Webhook 复制出来。

image
  1. 将复制出来的 Webhook地址配置到相应的代码库中。云效支持Gitlab、Github、Gitee、通用Git代码仓库类型开启代码源触发,各类型代码仓库配置Webhook方法参考如下。

Gitlab 配置 Webhook

访问Gitlab的代码库地址,在代码库 > Settings > Integrations 中将流水线复制出来的 WebHook 添加到 URL 中。

image

Github 配置 Webhook

访问 Github 的代码库地址,在代码库 > Settings > Webhooks中,点击 Add Webhook,将 Flow 流水线上复制的 Webhook 地址填入 Payload URL中,Content Type 选择 application/json。

image

Gitee 配置 Webhook

访问码云 Gitee的代码库地址,在代码库 > Settings > Webhooks 中,将 Flow 流水线上复制的 Webhook 地址添加到 URL 中。

通用 Git 配置 Webhook

以GitLab为例,访问Gitlab的代码库地址,在代码库 > Settings > Integrations 中将流水线复制出来的 WebHook 添加到 URL 中。

触发事件

你可以使用 触发事件 配置来对代码源 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 端创建合并请求,Codeup 支持此类事件。比如从远程的 dev 分支(源分支)发起一个合并请求到 master 分支(目标分支)。Flow 会将合并请求的目标分支与过滤条件进行匹配,如果匹配成功,则会触发流水线,并使用源分支作为流水线运行时使用的分支。

合并请求完成后

与合并 合并请求新建/更新 相比唯一的差别是: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。

代码路径过滤

通过配置代码路径过滤,可以对代码源不同触发事件的代码路径进行过滤,目前仅支持 CodeUp 代码源 Push 事件。当代码源触发事件发生时,只有代码路径过滤规则下的代码发生更新才可以触发流水线运行,填写过滤条件支持正则表达式。例如:过滤条件为auth-srv/.*时,仅当auth-srv目录下的代码有更新时才会触发流水线运行。

阿里云首页 云效 相关技术圈