Gradle Build Failing due to Environment Variables

25 Views Asked by At

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)
}

}

0

There are 0 best solutions below