1
我試圖使用BUILD_NUMBER
環境屬性創建一個標記,我可以傳遞給我的ANT腳本(以便我可以將它寫入我的WAR/JAR清單)以及在由「Subversion Tagging Plugin」執行的標記過程中使用它。Jenkins:創建並將SVN標記傳遞給ANT和Subversion標記插件
一個小小的複雜情況是,我想在使用之前零點填充BUILD_NUMBER
。例如,如果BUILD_NUMBER
是14,我的標籤看起來像1.0.0.00014。
我發現它有一個「評估的Groovy腳本」功能,這劇本對我的作品的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選項甚至是我想要做的最好的方式?
- 是否有比通過
Jenkins.instance.getItem()
更直接的API來獲取「此版本」?我知道這是有效的,但由於任務的名稱隨時可能改變,從而破壞劇本,這似乎很脆弱。我嘗試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 Plugin v1.16和Environment Injector Pluging v1.73。
由於提前,
馬特