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 [email protected].
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