I'm currently testing my DSL scripts using gradle based on this example. https://github.com/jenkinsci/job-dsl-plugin/wiki/Testing-DSL-Scripts
But build is failing for groovy scripts that has environment variables like "JENKINS_INSTANCE_NAME". This variable is already define in the Global properties.
Error encountered:
JobScriptsSpec > test script param_job.groovy FAILED
Expected no exception to be thrown, but got 'javaposse.jobdsl.dsl.DslScriptException'
at spock.lang.Specification.noExceptionThrown(Specification.java:118)
at JobScriptsSpec.test script #file.name(JobScriptsSpec.groovy:25)
Caused by:
javaposse.jobdsl.dsl.DslScriptException: (script, line 7) No such property: JENKINS_INSTANCE_NAME for class: javaposse.jobdsl.dsl.jobs.WorkflowJob
at javaposse.jobdsl.dsl.AbstractDslScriptLoader.runScriptEngine(AbstractDslScriptLoader.groovy:112)
at javaposse.jobdsl.dsl.AbstractDslScriptLoader.runScripts_closure1(AbstractDslScriptLoader.groovy:59)
at groovy.lang.Closure.call(Closure.java:405)
at groovy.lang.Closure.call(Closure.java:421)
at javaposse.jobdsl.dsl.AbstractDslScriptLoader.runScripts(AbstractDslScriptLoader.groovy:46)
at javaposse.jobdsl.dsl.AbstractDslScriptLoader.runScript(AbstractDslScriptLoader.groovy:85)
at JobScriptsSpec.test script #file.name(JobScriptsSpec.groovy:22)
Caused by:
groovy.lang.MissingPropertyException: No such property: JENKINS_INSTANCE_NAME for class: javaposse.jobdsl.dsl.jobs.WorkflowJob
at script.run_closure1(script:7)
at groovy.lang.Closure.call(Closure.java:405)
at groovy.lang.Closure.call(Closure.java:421)
at javaposse.jobdsl.dsl.JobParent.processItem(JobParent.groovy:105)
at javaposse.jobdsl.dsl.JobParent.pipelineJob(JobParent.groovy:86)
at script.run(script:1)
at javaposse.jobdsl.dsl.AbstractDslScriptLoader.runScript(AbstractDslScriptLoader.groovy:132)
at javaposse.jobdsl.dsl.AbstractDslScriptLoader.runScriptEngine(AbstractDslScriptLoader.groovy:106)
... 6 more
Sample script:
pipelineJob('param-job') {
description('This job is parameterized')
parameters {
stringParam('DevelopBranch', 'develop', 'The develop branch from development.')
stringParam('RepoName', 'test_repo', 'The name of the repository')
}
if (JENKINS_INSTANCE_NAME == 'test') {
triggers {
cron('H 6 * * *')
}
}
logRotator {
numToKeep(10)
daysToKeep(7)
}
}