Невозможно создать переменную в сценарии оболочки DSL jenkins

Gopi спросил: 28 апреля 2018 в 09:08 в: jenkins

Я получил ошибку ниже, когда создаю новую переменную (MY_VARIABLE) в сценарии оболочки jenkins. В сценарии jenkins dsl shell я просто хочу создать переменную и присвоить значение по умолчанию и напечатать ее.

javaposse.jobdsl.dsl.DslScriptException: (script, line 12) No such property: MY_VARIABLE for class: javaposse.jobdsl.dsl.jobs.FreeStyleJob
at javaposse.jobdsl.dsl.AbstractDslScriptLoader.runScriptEngine(AbstractDslScriptLoader.groovy:112)
at javaposse.jobdsl.dsl.AbstractDslScriptLoader$_runScripts_closure1.doCall(AbstractDslScriptLoader.groovy:59)
at javaposse.jobdsl.dsl.AbstractDslScriptLoader.runScripts(AbstractDslScriptLoader.groovy:46)
at javaposse.jobdsl.dsl.AbstractDslScriptLoader$runScripts$0.callCurrent(Unknown Source)
at javaposse.jobdsl.dsl.AbstractDslScriptLoader.runScript(AbstractDslScriptLoader.groovy:85)
at javaposse.jobdsl.dsl.AbstractDslScriptLoader$runScript.call(Unknown Source)
at com.sheehan.jobdsl.DslScriptExecutor.execute(DslScriptExecutor.groovy:27)
at com.sheehan.jobdsl.ScriptExecutor$execute.call(Unknown Source)

Код jenkins

job('ci') {
    description 'Build and test the app.'    scm {
        github 'sheehan/job-dsl-playground'
    }
    steps {
        gradle 'test'
    }
    shell("""#!/bin/bash 
        MY_VARIABLE=5
        echo $MY_VARIABLE
    """)
    publishers {
        archiveJunit 'build/test-results/**/*.xml'
    }
 }

1 ответ

Есть решение
Mikhail Naletov ответил: 28 апреля 2018 в 09:38

Попробуйте избежать символа доллара:

job('ci') {
    description 'Build and test the app.'    scm {
        github 'sheehan/job-dsl-playground'
    }
    steps {
        gradle 'test'
    }
    shell("""#!/bin/bash 
        MY_VARIABLE=5
        echo \$MY_VARIABLE
    """)
    publishers {
        archiveJunit 'build/test-results/**/*.xml'
    }
 }