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选项是实现我想要做的事情的最佳方式吗
- 是否有比通过
更直接的API来获取“此构建”?我知道这是可行的,但考虑到工作的名字随时可能改变,从而打破剧本,这似乎很脆弱。我尝试了Jenkins.instance.getItem()
,但是我得到了一个错误,错误是manager.build.getEnvironment(manager.listener)['build\u NUMBER']
[environject]-[error]-发生了严重错误:没有这样的属性:类的管理器:Script1
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
而且效果很好