覆盖Hudson中的内部版本号

时间:2010-11-19 14:41:49

标签: svn build-process hudson build-automation

如何覆盖Hudson内部版本号?这听起来像一个简单的问题,但实际上并非如此。

主要目标是将SVN修订号作为内部版本号。所以我设置了env。变种。有适当的插件,我有:

BUILD_NUMBER = ${SVN_REVISION}.${BUILD_ID} BUILD_TAG = ${JOB_NAME}.${BUILD_NUMBER} BUILD_NUMBER = ${JOB_URL}.${BUILD_NUMBER}

并且在Hudson日志中,实际覆盖了BUILD_NUMBER:

  

BUILD_NUMBER = 32.2010-11-19_14-10-48

     

BUILD_TAG = hudson-FF.Course Management-32.2010-11-19_14-10-48

     

BUILD_URL = http://dot-servers:8080/job/FF.Course%20Management/32.2010-11-19_14-10-48

但是Hudson仍然使用自己的号码并声称构建号码是70,我希望它是32(如上例所示)。

5 个答案:

答案 0 :(得分:3)

  1. 构建开始后无法设置内部版本号。
  2. 构建号需要是数字。
  3. 构建号码必须是唯一的。
  4. 有一个插件可以设置作业的next build number。但这不是您正在寻找的功能,因为该工作已经开始。你应该看看哈德森的fingerprint feature。另一个不错的插件,可能对你有用description setter plugin。请查看this issue以更好地了解内部版本号。

答案 1 :(得分:2)

我找到了一种方法,只需在jobs / project / nexBuildNumber中更改版本号,然后获得Manage Hudson选项卡,然后单击“从磁盘重新加载配置”,然后它将加载新的覆盖的内部版本号。

答案 2 :(得分:0)

当你说哈德森使用自己的号码时,你的意思是左侧边栏吗?

如果是这样,可能是因为当你设置它时(我猜测是通过构建>执行shell脚本),这个数字已经用于创建构建本身,因此它使用70代替32。

但是,由于您更改了Execute shell脚本中的数字,所以使用之后应使用32的内部版本号的任何内容。

答案 3 :(得分:0)

我改变了主意。我没有改变Hudson的内部版本号,而是使用它来版本化我的二进制文件。所以现在我有一个带有这种版本的二进制文件:

1.2.${SVN_REVISION}.${BUILD_NUMBER}

并将其与Description Setter插件相结合,我可以在任何地方反映每个数字。 谢谢你的帮助。

答案 4 :(得分:0)

我在Team City CI中完成了这项工作,这与Hudson相似。

在命令行参数中设置 -DSVN_REVISION = 123 -DBUILD_NUMBER = 456 以运行Maven。这应该覆盖这些值。

在Team City中,我使用带有 -DscmBranch = / releases / 2.0.0 -DbuildNUmber = 233 的Maven BuildNumber插件来构建我们的版本,因为该插件仅支持/ tags,/ branches和/ trunk文件夹名称,但是我们有一个/ releases文件夹。这会覆盖scm插件中的值。