我正在尝试使用BUILD_NUMBER
environment 属性来创建一个标签,我可以将它传递给我的 ANT 脚本(以便我可以将它写入我的 WAR/JAR 清单),并在“Subversion”执行的标记过程中使用它标记插件”。
一个小问题是我想BUILD_NUMBER
在使用它之前对其进行零填充。例如,如果BUILD_NUMBER
是 14,我的标签看起来像 1.0.0.00014。
我找到了具有“Evaluated Groovy script”功能的 EnvInject 插件,该脚本对我有用,但我确实有问题:
import jenkins.model.*
def tagPrefix = "1.0.0."
def env = Jenkins.instance.getItem("BnL Build").getLastBuild().getEnvironment()
def buildNumber = env['BUILD_NUMBER']
def tag = tagPrefix + buildNumber.padLeft(5,'0')
def map = [AP_SVN_TAG: tag]
return map
问题是:
- EnvInject 选项甚至是我想做的最好的方法吗?
- 有没有比 via 更直接的 API 来获取“这个构建”
Jenkins.instance.getItem()
?我知道这行得通,但似乎很脆弱,因为作业的名称可能随时更改,从而破坏脚本。我尝试manager.build.getEnvironment(manager.listener)['BUILD_NUMBER']
了,但我得到了一个错误,即[EnvInject] - [ERROR] - SEVERE ERROR occurs: No such property: manager for class: Script1
.
如果有帮助,我正在运行 Jenkins v1.488、Jenkins Subversion Tagging Pluging v1.16 和 Environment Injector Pluging v1.73。
提前致谢,
马特