如何在jenkins中通过jenkinsfile永久更新ENV变量,以便在成功的构建中使用



需要我的ENV变量通过jenkinsfile更新它的值,并且能够在下一个jenkinsbuild中使用更新的值

我在jenkins节点上创建了一个环境变量

输入图片描述

我正在更新变量,得到这个输出'

println "${env.EOD_ID}"
env.EOD_ID = "23ba9d9e-93ce-4b46-a81d-8784794d81b1-test"
println "${env.EOD_ID}"

输出:

test
10:29:31  [Pipeline] echo
10:29:31  23ba9d9e-93ce-4b46-a81d-8784794d81b1-test

,但当我运行下一个构建它没有值23ba9d9e-93ce-4b46-a81d-8784794d81b1-test

不能这样更新环境变量。如果你正在使用EnvInject Plugin,你可以使用下面的脚本来更新环境变量。

ef persistInfo(){
def jenkins = Jenkins.instance
def jobA = jenkins.getItemByFullName("$JOB_NAME")
def prop2 = jobA.getProperty(org.jenkinsci.plugins.envinject.EnvInjectJobProperty);
def con = prop2.getInfo().getPropertiesContent();
def str = "NewValue"

def prop = new EnvInjectJobPropertyInfo("", str , "", "", "", false)
def propNew = new org.jenkinsci.plugins.envinject.EnvInjectJobProperty(prop)
propNew.setOn(true)
propNew.setKeepBuildVariables(true)
propNew.setKeepJenkinsSystemVariables(true)
jobA.addProperty(propNew)
jobA.save();
}

相关内容

最新更新