-
Notifications
You must be signed in to change notification settings - Fork 100
HugeGraph GitHub Travis CI 自动构建流程
-
提交或更新PR(pull request),作用分枝:master、release-*
-
创建或更新分枝(push),作用分枝:release-*、test-*
-
发布版本(tag),新建tag触发版本发布,版本名称必须满足如下模式:“^v[0-9]..*$”
注意:hugegraph使用master作为开发分枝,仅允许在release分枝上发布版本
构建的大体流程如下:
-
环境安装(install),安装后端数据库、安装依赖包等
-
自动测试(test),测试包括:单元测试(unit-test)、功能测试(core-test)、TinkerPop测试(structure-test、process-test)
API测试与集成测试由client组件及loader组件提供
-
自动发布(deploy),版本自动发布包括:发布tar包到GitHub Releases、发布jar包Maven中央仓库
只有在release分枝打tag才会触发deploy流程(人为限制)
自动测试会对各个后端存储进行测试,各后端之间的测试并发执行(在相互独立的容器中运行),针对某一后端的各个测试串行执行。
目前自动测试的后端存储如下:memory、rocksdb、cassandra、scylladb、mysql、hbase
具体被执行的测试集会因为场景不同有一些区别:
-
master分枝pull request场景:执行unit-test、core-test两种测试
不论哪种场景中,单元测试unit-test仅memory后端才会执行
-
release分枝pull request场景:执行unit-test、core-test、tinkerpop-structure-test、tinkerpop-process-test四种测试
注意:tinkerpop测试耗时较长,travis允许执行的最长时间是50分钟,且不允许超过10分钟无任何日志输出,如果测试超时失败可重新运行
-
release分枝tag场景:执行unit-test、core-test两种测试,执行codecov覆盖率测试,所有后端测试通过后执行deploy发布包
自动发布由新建tag触发,往GitHub推送tag或者在GitHub Releases页面上新建release均可触发,只要tag名称满足以”v数字”开头的模式即可,不过hugegraph要求必须在release分枝上打这种tag。成功发布后可在GitHub Releases页面进行tar包下载(解压后即可运行hugegraph服务)、或者在pom中引入maven依赖使用jar包。
Documentation license here.