Jenkins:创建SVN标签并将其传递给ANT和Subversion标签插件

Jenkins:创建SVN标签并将其传递给ANT和Subversion标签插件,svn,jenkins,Svn,Jenkins,我试图使用BUILD\u NUMBERenvironment属性创建一个标记,我可以将它传递给我的ANT脚本(这样我就可以将它写入我的WAR/JAR清单),并在“Subversion标记插件”执行的标记过程中使用它 一个小麻烦是,我想在使用之前将BUILD\u编号归零。例如,如果BUILD\u编号为14,则我的标记看起来像1.0.0.00014 我发现EnvInject插件具有“评估Groovy脚本”功能,该脚本适合我,但我确实有问题: import jenkins.model.* def t

我试图使用
BUILD\u NUMBER
environment属性创建一个标记,我可以将它传递给我的ANT脚本(这样我就可以将它写入我的WAR/JAR清单),并在“Subversion标记插件”执行的标记过程中使用它

一个小麻烦是,我想在使用之前将
BUILD\u编号
归零。例如,如果
BUILD\u编号
为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
问题是:

  • envirnject选项是实现我想要做的事情的最佳方式吗
  • 是否有比通过
    Jenkins.instance.getItem()
    更直接的API来获取“此构建”?我知道这是可行的,但考虑到工作的名字随时可能改变,从而打破剧本,这似乎很脆弱。我尝试了
    manager.build.getEnvironment(manager.listener)['build\u NUMBER']
    ,但是我得到了一个错误,错误是
    [environject]-[error]-发生了严重错误:没有这样的属性:类的管理器:Script1
如果有帮助的话,我正在运行Jenkins v1.488、Jenkins Subversion Tagging Pluging v1.16和Environment Injector Pluging v1.73

提前感谢,


Matt

该插件现已由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

而且效果很好

该插件现已由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
而且效果很好