可以将Hudson配置为构建每个修订版吗?

Cod*_*ddy 7 svn continuous-integration hudson build-server

我已经开始尝试使用Hudson作为构建服务器.我正在使用subversion并将其配置为每分钟轮询一次.我看到的问题是,如果版本10的版本需要5分钟,并且在此期间有5次提交,Hudson将在下一次构建版本15.

有没有办法确保每个修订都建立?

小智 10

您必须做一些事情来构建每个修订:

  • REVISION在作业中添加一个字符串参数
  • ${REVISION}参数附加到存储库URL,
    例如:https://server/path/myproject${REVISION}
  • 将本地文件夹的名称设置为"myproject"(参见上一个示例),因为该REVISION变量仅在URL中展开,但在创建文件夹时,Hudson不会展开它,从而生成一个名为的文件夹:myproject${REVISION}
  • 从post-commit钩子触发参数化构建,如下所示: /usr/bin/wget \ --auth-no-challenge \ --no-check-certificate \ --user=me \ --password=mypasswd \ https: //server/path/job/jobname/buildWithParameters?delay=0sec\&REVISION=%40$REV \ -O /dev/null

如果要手动触发构建,则有两种可能:

  • 如果要构建HEAD修订版,则必须将REVISION参数保留为空
  • 如果要构建特定版本,则必须输入@NNN(例如:@ 1234).

这个@标志非常重要,因为所有这些技巧都依赖于Subversion插件解释URL@NNN为的事实get revision NNN from repository at URL.如果你忘了@,Subversion会说它找不到文件夹https://server/path/myprojectNNN.这也是为什么你必须把%40之间REVISION=,并$REV在wget命令,%40是为转义字符@.


Mic*_*hue 4

Hudson 尚不具备此功能,但邮件列表中已多次要求提供此功能。参见第 673 期