Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-35377

Execute system Groovy script - StringParameterValue does not create an environment variable

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Not A Defect
    • Icon: Major Major
    • core, groovy-plugin
    • None
    • Jenkins 2.7
      Groovy plugin 1.29
      Java.version 1.7.0_17

      After we upgraded our Jenkins from 1.651 to 2.7, our Groovy scripts no longer create environment variables with StringParameterValue. In this case, we use the script to get the job number for a downstream job before it's executed. This variable is then passed down in a "Trigger/call builds on other projects" step using predefined parameters.

      Execute system Groovy script

      import hudson.model.*
      
      def build = Thread.currentThread().executable
      
      def testSuite = build.buildVariableResolver.resolve("TEST_SUITE")
        
      def item = hudson.model.Hudson.instance.getItem("$testSuite") 
      def jobBuild = item.getLastBuild()
      def nextBuildNum = jobBuild.getNumber()+1
        
      
      def pa = new ParametersAction([
        new StringParameterValue("EXE_BUILD_NUM", "$nextBuildNum")
      ])
      build.addAction(pa)
      

      After the update, the variable name

      "${EXE_BUILD_NUM}"
      

      is passed in instead of the value

      "46"
      

            vjuranek vjuranek
            cwcam Cam Spencer
            Votes:
            1 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: