技术开发 频道

配置管理每日构建(三)

【IT168 技术文章】

    3.自动编译系统的配置

    3.1. 目录结构 
    
    工程源代码目录(NBDSOURCE):在该目录下 Checkout 工程的源代码。它是整个工程的核心。 
    工程源代码配置目录(NBDSRCCTL):在源代码目录下,创建一个存放控制文件的目录,如 config,或者 admin。主要是放入存储编译日期、版本的文件
    Nightly Build编译脚本目录 (NBDSCRIPT):在该目录 Checkout 执行自动编译的脚本。它是整个编译系统的工具箱。  
    Nightly Build启动目录 (NBDHOMEDIR):同样的编译脚本,要能够编译一个工程的不同的分支,也要能够编译如前所述的 nightly,     milestone, sticky 版本。这就需要建立发起编译的目录,该目录主要放置一些能够区分不同编译条件的配置文件,以及启动编译脚本的钩子脚本。
   
    3.2. 配置文件
    3.2.1. NBDHOMEDIR/build.ini
    用于指定源代码、脚本的路径。
    #脚本的根路径     源代码的根路径
    NBDSCRIPT=/home/Administrator/work/jiangxin/src/nightlybuild/script/ 
    NBDSOURCE=/home/Administrator/work/jiangxin/src/dlltest/ 

    3.2.2. NBDHOMEDIR/LABEL
    决定编译的版本:nightly, milestone, 还是 sticky 版本。
    空文件,或者内容为 nightly 的文件,意味着编译 nightly 版本。
    内容为 milestone,意味着编译 milestone 版本。
    内容为某一真实存在的标签 LABEL/TAG,意味着编译该版本的 sticky 编译。
   
    3.2.3. NBDHOMEDIR/BRANCH
    如果是空文件,或者内容为 main,意味着当前代码处于主线。
    如果是其它内容,则该内容为分支 LABEL/TAG。
    这个文件是和 CVS 的 MAGIC BRANCH 的概念向对应的,参见:《Per Cederqvist's CVS Manual》
   
    3.2.4. NBDHOMEDIR/nightly.sh
    调用真正的脚本的钩子脚本。
   
    #!/bin/sh
    #set -x
   
    NBDHOMEDIR=`dirname `
   
    if echo "$NBDHOMEDIR" | grep -q -v  "^/"; then
     NBDHOMEDIR="`pwd`/$"
    fi
   
    NBDHOMEDIR=$
    NBDHOMEDIR=$
    export NBDHOMEDIR
   
    build_file_name="$/build.ini"
   
    if [ ! -f "$build_file_name" ]; then
     echo "not find $build_file_name!" && exit 1
    fi
   
    . $build_file_name
   
    cd $NBDSCRIPT
    sh nightlybuild.sh "$@"
   
    3.2.5. NBDSRCCTL/VERSION
    记录版本号、编译日期
   
    [myapp]
    module=RegDllTest otherapp
    version=1.3.5.10
    buildtime=2003-04-01 20:44:48
    revisonfile=RegDllTest/RegDllTest.rc

    [mydll]
    module=DisplayAppName
    version=2.1.3.19
    buildtime=2003-02-12 10:21:08
    revisonfile=DisplayAppName/DisplayAppName.rc
   
    [global]
    version=1.0.0.1
    buildtime=2003-04-01 20:44:48
     
    表示一个单元的开始
    模块列表,需要检查代码更新的模块列表
    定义该单元模块的版本号
    上一次该模块编译的时间
    包含版本信息的资源文件,用本节定义的版本号去更新资源文件
    全局配置开始
    整个软件包的版本号

0
相关文章