改变詹金斯'的方法使用脚本

时间:2017-02-10 16:31:09

标签: jenkins environment-variables jenkins-plugins

有没有办法在构建完成后自动更改Jenkins中的项目变量值? 在我的情况下,我有一个变量VERSION,默认值是1.我需要在每次构建完成时增加此默认值。假设在这种情况下由cron构建星星。任何插件都可以帮到我吗?

现在我有这样的事情:My build steps。 在我找到的groovy脚本中获取项目变量是一种单一的工作方式。现在我如何为变量设置新值? 我在SO上读了一些类似的问题,但是没有找到适合我的方法。

P.S。我无法使用$ BUILD_NUMBER var,因为我需要在开始构建时手动设置VERSION。

1 个答案:

答案 0 :(得分: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。此代码除了检索全局变量的值,更改它并保存变量的新值之外别无其他。