Pass parameters in jenkins pipeline to internal gr

2020-07-27 04:49发布

问题:

How can we pass parameters in Groovy script in Jenkins pipeline?

I have written xyz.groovy, it loads and executes fine but i would like to pass parameters in it instead of duplication of jobs. I tried passing load '../xyz.groovy' param1 param2 but no luck.

Pipeline script:

node {
    load '../xyz.groovy'
}()

xyz.groovy

import hudson.model.*
import groovy.json.JsonBuilder
import groovy.json.JsonOutput
import java.net.URL

echo "\nParameters.."
echo param1
echo param2

回答1:

Can't you do something similar to this instead: How do you load a groovy file and execute it

You create methods in your groovy that you call with the parameters?

node {
    def script = load '../xyz.groovy'
    script.method(param1, param2)
}


回答2:

This can be done simply by using the ${jenkins_param} syntax

e.g

  • define a string param in the Jenkins build job called RELEASE_VERSION = "1.0"
  • reference this as ${RELEASE_VERSION} in the groovy script

This will resolve as "1.0" when the script is running