一般适合放在CI流水线上的构建内容有:
1.git message校验(格式,单号,标签等)
2.修改的文件的文件风格,文件权限,是否新增二进制
3.代码增量静态检查(clang-format clang-tidy pclint cmetrics 开源扫描等)
4.代码编译(release debug等)
5.部署运行&&smoketest
对于CI流水线,要综合考虑效率和质量。一般来说,在CI上使能的用例越多,代码的质量会越好,但是更多的用例会增加CI构建的时长从而降低开发效率。所以,提升代码质量的有效方法就是在CI流水线上增加用例,而提升CI效率的方法大致有以下几个方向:
1.精简用例,尽量用最少的用例来保障功能的正确性
2.优化CI任务调度流水,增加构建的并发度和资源利用率,执行时间短的任务优先调度,一旦失败,不触发后续任务
3.保障正确性前提下尽量做增量构建
4.将用例按模块划分,根据提交涉及到的模块触发对应的测试集而非全量
5.避免三方库的编译和测试
6.增加CI的稳定性,避免上一些本身有失败概率的benchmark拦截,有随机挂的用例及时定位处理,或者支持失败用例多次执行,用例执行要有timeout机制
CI流水线的策略和项目具体情况密切相关,建议因地制宜,不要生搬硬套。比如,如果项