2017-02-10 26 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のポストビルドパーツを追加します。このコードの

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から取得されます。このコードは、グローバル変数の値を取り出して変更し、変数の新しい値を保存する以外に何もしません。

関連する問題