I am not sure what I am doing wrong with my groovy script.
I have written a groovy update script to bulk update all my projects.
Sometimes it does not take affect when I call project.save()
I can afterwards open that project configuration page and everything looks 
right. The updated content is there.
However when I write a groovy read script to print out that information I 
updated, not all projects show the updated information.
If I then open those projects configuration page, do nothing and just press 
save then that information is available when I run the read script again.

Making a change in Script console using Groovy and then envoke 
project.save(), why is it that when I try to read the value again it does 
not show the changed value, but the old one.

Do I need to perform some other action than just project.save()

For instance given this groovy script to add some environment variables.
#!/usr/bin/env groovy

import java.lang.StringBuilder
import hudson.matrix.MatrixProject
import org.jenkinsci.plugins.envinject.EnvInjectJobProperty
import org.jenkinsci.plugins.envinject.EnvInjectJobPropertyInfo

def jenkinsInstance = jenkins.model.Jenkins.getInstance()
def developmentView = jenkinsInstance.getView("myView")
developmentView.getItems().each { project ->

    StringBuilder builder = new StringBuilder()
    builder.append("NO_CPPCHECK=true")
    builder.append("\n")
    builder.append("NO_INSTALL=true")
    final def propertiesContent = builder.toString()

    def info = new EnvInjectJobPropertyInfo(null, propertiesContent, null, 
null, null, false)
    def property = new EnvInjectJobProperty()
    property.setOn(true)
    property.setKeepJenkinsSystemVariables(true)
    property.setKeepBuildVariables(true)
    property.setInfo(info)

    project.addProperty(property)
    project.save()
}

Trying to read the same environment variables
#!/usr/bin/env groovy

import org.jenkinsci.plugins.envinject.EnvInjectJobProperty
import org.jenkinsci.plugins.envinject.EnvInjectJobPropertyInfo

def jenkinsInstance = jenkins.model.Jenkins.getInstance()
def developmentView = jenkinsInstance.getView("myView")
developmentView.getItems().each { project ->
  def EnvInjectJobProperty property = project.getProperty(
EnvInjectJobProperty.class)
  if (property != null) {
    def info = property.getInfo()
    println info.getPropertiesContent()
  }
}

Not all projects now shows the environment variables.

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/37b712cb-5407-4359-bacd-37a700ef8aed%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to