Skip to content

HugeGraph GitHub Travis CI 自动构建流程

Jermy Li edited this page Nov 20, 2018 · 2 revisions

触发条件

  1. 提交或更新PR(pull request),作用分枝:master、release-*

  2. 创建或更新分枝(push),作用分枝:release-*、test-*

  3. 发布版本(tag),新建tag触发版本发布,版本名称必须满足如下模式:“^v[0-9]..*$”

    注意:hugegraph使用master作为开发分枝,仅允许在release分枝上发布版本

构建流程

构建的大体流程如下:

  1. 环境安装(install),安装后端数据库、安装依赖包等

  2. 自动测试(test),测试包括:单元测试(unit-test)、功能测试(core-test)、TinkerPop测试(structure-test、process-test)

    API测试与集成测试由client组件及loader组件提供

  3. 自动发布(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包。