Использование переменной на другом этапе в декларативном Jenkinsfile - PullRequest
0 голосов
/ 06 февраля 2019

Я пишу декларативную Jenkinsfile, которая выглядит следующим образом.На этапе "build" я определяю переменную customImage, которую я хотел бы использовать на этапе "Push".

К сожалению, я не могу заставить это работать.

pipeline {

    agent any

    stages {
        stage("Build") {
            steps {
                script {
                    def commitHash = GIT_COMMIT.take(7)
                    echo "Building Docker image for commit hash: " + commitHash
                    def customImage = docker.build("myimage:${commitHash}")
                }
            }
        }
        stage("Push") {
            steps {
                echo "Pushing Docker image to registry..."
                script {
                    docker.withRegistry(REGISTRY_SERVER, REGISTRY_CREDENTIALS) {
                        $customImage.push()
                    }
                }
            }
        }
    }

}

1 Ответ

0 голосов
/ 06 февраля 2019

Вам просто нужно определить переменную в области видимости, где вы сможете получить к ней доступ позже, т.е.

def customImage
pipeline {
    agent any
    stages {
        stage("Build") {
            steps {
                script {
                    def commitHash = GIT_COMMIT.take(7)
                    echo "Building Docker image for commit hash: " + commitHash
                    customImage = docker.build("myimage:${commitHash}")
                }
            }
        }
        stage("Push") {
            steps {
                echo "Pushing Docker image to registry..."
                script {
                    docker.withRegistry(REGISTRY_SERVER, REGISTRY_CREDENTIALS) {
                        customImage.push()
                    }
                }
            }
        }
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...