Невозможно переместить определенные переменные между этапами в JenkinsFile (Сценарий) - PullRequest
1 голос
/ 16 октября 2019

У меня есть файл scriptedJenkins:

node{
build_id = env.BUILD_ID
stage("Clone") {
    checkout scm
}
stage("Build"){
    def docker_image = docker.build("articlestream:${env.BUILD_ID}")
}
stage("test"){
    // we should do testing here in the future
}
stage("Docker Push"){

    //our Registry
    docker.withRegistry("https://localhost:4000", "docker-registry-credentials") {

        docker_image.push("latest")
    }
}

}

Я ожидаю, что def docker_image будет доступен на этапе "Docker Push". Однако я получаю следующую ошибку:

groovy.lang.MissingPropertyException: No such property: docker_image for class: groovy.lang.Binding
    at groovy.lang.Binding.getVariable(Binding.java:63)
    at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onGetProperty(SandboxInterceptor.java:270)
    at org.kohsuke.groovy.sandbox.impl.Checker$6.call(Checker.java:291)
    at org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:295)
    at org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:271)
    at org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:271)
    at org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:271)
    at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.getProperty(SandboxInvoker.java:29)
    at com.cloudbees.groovy.cps.impl.PropertyAccessBlock.rawGet(PropertyAccessBlock.java:20)
    at WorkflowScript.run(WorkflowScript:17)

, которая предполагает, что docker_image не является переменной на данном этапе. Я могу сказать, что докер создает изображение на этапе сборки (проверенные журналы) Может ли кто-нибудь помочь мне перефразировать строку docker_image.push("latest"), чтобы я мог нажать?

...