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

zpjtge22  于 2022-11-21  发布在  Jenkins
关注(0)|答案(1)|浏览(278)

我需要我的ENV变量通过jenkinsfile更新它的值,并且能够在下一个jenkinsbuild中使用更新的值
我在jenkins节点上创建了一个环境变量
enter image description here
我更新变量,得到这个输出'

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

但是当我运行下一个构建时,它没有值23 ba 9d 9 e-93 ce-4 b46-a81 d-8784794 d81 b1-test

brqmpdu1

brqmpdu11#

您不能像这样更新环境变量。如果您正在使用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();
}

相关问题