daily build实时更新项目,可以
1. 检查是否编译有问题,如果有,则自动发送邮件以便及时解决而不影响团队的工作
2. 每天都能提供最新的软件Image提供测试
3. 方便回溯,在某些衰退问题出现时,这些日常编译的Image方便我们找到衰退的版本。

实现上,主要是制定定时任务。以apollo为例,方法如下:

在/etc/crontab里面增加:
30 3    * * *   skyworth cd /home/skyworth/workspace/ga310/dailybuild && sh ./dailybuild.sh
00 10   * * *   skyworth cd /home/skyworth/workspace/ga310/dailybuild && sh ./dailybuild.sh
22 15   * * *   skyworth cd /home/skyworth/workspace/ga310/dailybuild && sh ./dailybuild.sh

dailybuild.sh的内容如下:
#!/bin/sh
ga=$(dirname $(pwd))
cd $ga
svn st | grep ^? | awk '{print $2}' | grep -v buildenv | xargs rm -rf
svn up > dailybuild/svnup-report 2>&1
svn log -r {$(date +%F)}:{$(date --date "2 days ago" +%F)} > dailybuild/svnlog-report 2>&1
. ./pnx8400_a9_env.sh
cd $ga/target/build/systems/linux/skyworth/
make  > $ga/dailybuild/make-report 2>&1
cd $ga
sh ./getenv.sh
cd dailybuild
sh package.sh release > release-report 2>&1
sh package.sh create >> release-report 2>&1