我正在尝试使用BUILD_NUMBER
环境属性创建一个标记,我可以将其传递给我的ANT脚本(以便我可以将其写入我的WAR / JAR清单)以及在此过程中使用它标记过程由“Subversion标记插件”执行。
一个小问题是我想在使用之前对BUILD_NUMBER
进行零填充。例如,如果BUILD_NUMBER
为14,则我的标记看起来像1.0.0.00014。
我发现EnvInject插件有一个“评估的Groovy脚本”功能,这个脚本适合我,但我确实有问题:
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
问题是:
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标记插入v1.16和环境注入器插入v1.73。
提前致谢,
马特
答案 0 :(得分:1)
该插件现已由gboissinot更新为1.75版本,并使变量currentJob
和currentBuild
可用于Groovy脚本。所以我的新Groovy脚本是:
import jenkins.model.*
def tagPrefix = "1.0.0."
def buildNumber = currentBuild.getNumber().toString()
def tag = tagPrefix + buildNumber.padLeft(5,'0')
def map = [AP_SVN_TAG: tag]
return map
它很棒!