- 每日集成的意义
- 每日集成要做些什么
基于以上的考虑,每日集成要做的事情有:每日编译、自动化测试、静态检查。
下面只分享一下我做每日编译的一些经验。测试我不感兴趣,没研究过。静态检查都是用一些现成的工具,如pclint、coverity等等,没啥好说的。
- 每日编译
这是每日集成必不可少的环节。
我所做的项目是android中间件,做每日编译最简单的实现方式就是crontab+shell脚本,这也是我最喜欢的方式,可以有很大的发挥空间。但是老大们喜欢用持续集成工具,因为持续集成工具是可视化操作、能生成图表、自动抓log,这对他们来说更为直观。我反感用工具的原因是:一,有学习成本;二,工具对我而言就是一个黑盒,出问题的时候难定位。
我的每日编译脚本结构:
1、config.sh
config.sh结构 |
#!/bin/bash function set_value() { } function unset_value() { } if [ "$1" == "-u" ];then else fi |
2、prepare.sh
|
#!/bin/bash source config.sh #define function function remove_dir() { # do sth } function make_dir() { # do sth } #processe flow remove_dir make_dir |
3、download.sh
4、compare.sh
5、compile.sh
6、publish.sh