3.2. 配置文件

3.2.1. NBDHOMEDIR/build.ini
3.2.2. NBDHOMEDIR/LABEL
3.2.3. NBDHOMEDIR/BRANCH
3.2.4. NBDHOMEDIR/nightly.sh
3.2.5. NBDSRCCTL/VERSION
3.2.6. NBDSRCCTL/PROMOTION

3.2.1. NBDHOMEDIR/build.ini

用于指定源代码、脚本的路径。

NBDSCRIPT=/home/Administrator/work/jiangxin/src/nightlybuild/script/  1
NBDSOURCE=/home/Administrator/work/jiangxin/src/dlltest/ 2
1

脚本的根路径

2

源代码的根路径

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 $0`

if echo "$NBDHOMEDIR" | grep -q -v  "^/"; then
	NBDHOMEDIR="`pwd`/${NBDHOMEDIR}"
fi

NBDHOMEDIR=${NBDHOMEDIR%\.}
NBDHOMEDIR=${NBDHOMEDIR%/}
export NBDHOMEDIR

build_file_name="${NBDHOMEDIR}/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] 1
module=RegDllTest otherapp 2
version=1.3.5.10 3
buildtime=2003-04-01 20:44:48 4
revisonfile=RegDllTest/RegDllTest.rc 5

[mydll]
module=DisplayAppName
version=2.1.3.19
buildtime=2003-02-12 10:21:08
revisonfile=DisplayAppName/DisplayAppName.rc

[global] 6
version=1.0.0.1 7
buildtime=2003-04-01 20:44:48

1

表示一个单元的开始

2

模块列表,需要检查代码更新的模块列表

3

定义该单元模块的版本号

4

上一次该模块编译的时间

5

包含版本信息的资源文件,用本节定义的版本号去更新资源文件

6

全局配置开始

7

整个软件包的版本号

3.2.6. NBDSRCCTL/PROMOTION

记录里程碑版本号。例如:

JOHNSON-V-1-0-1