2017-02-10 36 views
0

有沒有辦法在構建完成後自動更改Jenkins中的項目變量值? 在我的情況下,我得到了一個變量VERSION,默認值是1.我需要增加每個構建完成時的默認值。假設在這種情況下由cron構建星星。任何插件可以幫助我?用腳本更改Jenkins項目變量值的方法

現在我有這樣的事情:My build steps。 這是一個單一的工作方式來獲取我發現的groovy腳本中的項目變量。現在我怎樣才能爲變量設置新的值? 我在SO上讀了一些類似的問題,但沒有找到適合我的工作方式。

P.S.我無法使用$ BUILD_NUMBER var,因爲我需要在我開始構建時手動設置VERSION的可能性。

+0

類似的問題作爲http://stackoverflow.com/questions/42087630/jenkins-increase-parameter-after-successful-build/ –

+0

錯過了這個問題。但我不想使用文件或任何外部存儲來保存價值。有沒有辦法改變構建配置的exaclty價值? – Peppa

回答

0

首先,安裝插件Global Variable String Parameter PluginGroovy Postbuild Plugin。在Manage Jenkins -> Configure System下,您現在應該有一個名爲Global Properties的部分。在那裏添加一個新變量。在我的測試中,我把它稱爲SOME_VER

enter image description here

在你的工作,你現在有了這個代碼,調整到您的變量添加一個Groovy postbuild部分:

import jenkins.*; 
import jenkins.model.*; 
import hudson.*; 
import hudson.model.*; 
import java.lang.*; 

instance = Jenkins.getInstance(); 
globalNodeProperties = instance.getGlobalNodeProperties(); 
envVarsNodePropertyList = globalNodeProperties.getAll(hudson.slaves.EnvironmentVariablesNodeProperty.class); 

envVars = null 

if (envVarsNodePropertyList != null && envVarsNodePropertyList.size() > 0) 
{ 
    envVars = envVarsNodePropertyList.get(0).getEnvVars() 

    String value = envVars.get("SOME_VER", "0") 
    int NEW_VER = Integer.parseInt(value) 
    NEW_VER = NEW_VER + 1 

    envVars.override("SOME_VER", NEW_VER.toString()); 
} 

instance.save() 

這個代碼的部分被here拍攝。這個代碼除了檢索全局變量的值之外沒有別的事情,改變它並保存變量的新值。