1

BUILD_NUMBER環境プロパティを使用して、ANTスクリプトに渡すことができるタグを作成し(WAR / JARマニフェストに書き込むことができるように)、「Subversion」によって実行されるタグ付けプロセス中に使用しようとしています。タグ付けプラグイン」。

マイナーな問題は、使用するBUILD_NUMBER前にゼロパッドを使用したいということです。たとえば、BUILD_NUMBERが14の場合、私のタグは1.0.0.00014のようになります。

「EvaluatedGroovyscript」機能を備えた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オプションは、私がやりたいことを実行するための最良の方法でさえありますか?
  • 「このビルド」を取得するためのより直接的な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 InjectorPlugingv1.73を実行するのに役立つ場合。

前もって感謝します、

マット

4

1 に答える 1

1

プラグインはgboissinotによってバージョン1.75に更新され、変数currentJobcurrentBuildGroovyスクリプトで使用できるようになります。したがって、私の新しい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

そしてそれは素晴らしい働きをします!

于 2012-12-22T02:51:32.830 に答える