Issue
- As a Jenkins admin, I would like to validate the job transformer via Script Console
Environment
- CloudBees Jenkins Enterprise - Managed Master (CJEMM)
- CloudBees Jenkins Platform - Client Master (CJPCM)
- CloudBees Jenkins Template Plugin
Resolution
Script
The following script illustrates how to solve the issue. For Case A the transformer is OK whereas for Case B not.
Notes:
- Please make a backup of your
$JENKINS_HOME
before running it. Overall - RunScripts
(admin) permission is needed in order to run it.
import com.cloudbees.hudson.plugins.modeling.ModelList
import com.cloudbees.hudson.plugins.modeling.impl.jobTemplate.InstanceFromJobTemplate
import com.cloudbees.hudson.plugins.modeling.impl.jobTemplate.JobPropertyImpl
// getAllItems type JobTemplate and then filtering by item name
def MyTemplate1= Jenkins.instance.getAllItems(com.cloudbees.hudson.plugins.modeling.impl.jobTemplate.JobTemplate).find{job-> job.name=="My Template Example 1"}
// getItem() needs full name as described in http://javadoc.jenkins.io/hudson/model/Item.html#getFullName
def MyTemplate2= ModelList.get().getItem("SUPPORT-Team/Templates/My Template Example 2")
println "CASE A: Transformer OK"
println "----------------------"
try{
MyTemplate1.transformer.compileTemplate()
println "[INFO] : $MyTemplate1.name transformer is OK"
}catch (Exception e){
println "[ERROR] :"+ e.toString()
}
println "\n\n"
println "CASE B: Transformer with Errors"
println "----------------------"
try{
MyTemplate2.transformer.compileTemplate()
println "[INFO] : $MyTemplate2.name transformer is OK"
}catch (Exception e){
println "[ERROR] :"+ e.toString()
}
Console Output
CASE A: Transformer OK
----------------------
[INFO] : My Template Example 1 transformer is OK
CASE B: Transformer with Errors
----------------------
[ERROR] :groovy.lang.GroovyRuntimeException: Failed to parse template script (your template may contain an error or be trying to use expressions not currently supported): startup failed:
SimpleTemplateScript28.groovy: 83: unexpected token: & @ line 83, column 41.
lease_to_Artifactory=="Yes" &&& !!! bla bla
^
1 error
Tested product/plugin versions
The latest update of this article was tested with:
- CloudBees Jenkins Platform - Client Master: 2.73.1.2-rolling
- CloudBees Jenkins Template: 4.33
0 Comments