【发布时间】:2011-05-12 16:21:08
【问题描述】:
如何覆盖 Hudson 内部版本号?这听起来像是一个简单的问题,但实际上并非如此。
主要主要目标是将 SVN 修订号作为内部版本号。所以我设置了环境。变种使用适当的插件,我有:
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(如上例所示)。
【问题讨论】:
-
丑。这听起来像是在自找麻烦。可以将 svn 修订版用作构建中包含的构建 ID。但是要求 Hudson 的内部版本号与 Subversion 同步推进可能会导致问题,例如手动构建没有唯一的构建号。为什么 Hudson 的内部版本号很重要?
-
1) 我明白构建的唯一性很重要,这就是为什么我在 ${BUILD_NUMBER} 中使用 ${BUILD_ID}。我希望这能解决唯一性问题
-
2) 为什么我需要这个?好吧,当我拥有版本为 1.2.3.${SVN_REVISION} 的 DLL 时,我想用 Hudson 构建轻松地反映这个版本。如果没有这种反射,我需要浏览构建列表以查找特定的构建。或者其他情况:我的开发人员倾向于说“我已经在 ${SVN_REVISION} 中实现了它”而不是“我已经在 ${HUDSON_BUILD_NUMBER} 中实现了它”。因此,总而言之 - 这只是一种在查看文件版本和 Hudson 构建列表时轻松找到感兴趣构建的方法。
-
注意:针对 Jenkins "build-name-setter" 插件中的 bug 的解决方法:issues.jenkins-ci.org/browse/…
标签: svn build-process hudson build-automation