// add-jenkins-param.groovy // Adds a parameter to all jobs on a Jenkins instance. // The parameter is then exposed to the job's environment as `$PARAM_KEY`. import hudson.model.* key = 'GEM_SOURCE' value = 'http://rubygems.delivery.puppetlabs.net:5000' desc = 'The rubygems URL' for(job in Hudson.instance.items) { // TODO: this doesn't work. Don't use it! println("[ " + job.name + " ] setting " + key + "=" + value) newParam = new StringParameterDefinition(key, value, desc) paramDef = job.getProperty(ParametersDefinitionProperty.class) if (paramDef == null) { newArrList = new ArrayList(1) newArrList.add(newParam) newParamDef = new ParametersDefinitionProperty(newArrList) job.addProperty(newParamDef) } else { // Parameters exist! We should check if this one exists already! found = paramDef.parameterDefinitions.find{ it.name == key } if (found == null) { paramDef.parameterDefinitions.add(newParam) } } //job.save() println() }