Skip to content

Instantly share code, notes, and snippets.

@halfb00t
Created October 27, 2017 07:56
Show Gist options
  • Select an option

  • Save halfb00t/abe67e9cc8377aeb34a4b24e863adffa to your computer and use it in GitHub Desktop.

Select an option

Save halfb00t/abe67e9cc8377aeb34a4b24e863adffa to your computer and use it in GitHub Desktop.
// add-jenkins-param.groovy
// Adds a parameter to all jobs on a Jenkins instance.
// The parameter is then exposed as an environment variable.
import hudson.model.*
key = 'GEM_SOURCE'
value = 'http://rubygems.delivery.puppetlabs.net'
for(job in Hudson.instance.items) {
println("[ " + job.name + " ] setting " + key + "=" + value)
newParam = new StringParameterDefinition(key, value)
paramDef = job.getProperty(ParametersDefinitionProperty.class)
if (paramDef == null) {
newArrList = new ArrayList<ParameterDefinition>(1)
newArrList.add(newParam)
newParamDef = new ParametersDefinitionProperty(newArrList)
job.addProperty(newParamDef)
}
else {
// Parameters exist! We should check if this one exists already!
// TODO: contains() isn't working for what we need. Walk the
// params to see if the param already exists.
if (!paramDef.parameterDefinitions.contains(newParam)) {
paramDef.parameterDefinitions.add(newParam)
}
}
job.save()
println()
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment