Как получить доступ к переменной groovy из конвейера в сценарий оболочки? - PullRequest
0 голосов
/ 10 апреля 2020

У меня есть глобальная переменная в конвейере, скажем BACKUP_DIR_NAME, и в сценарии оболочки, который находится внутри конвейера, я хочу построить путь, используя его, следовательно, иметь следующий код -

BACKUP_DIR_NAME="10-04-2020"

pipeline {
    agent any

    stages {

        stage('First') {
            steps {
                script {

                    sh '''
                       BACKUP_DIR_PATH="/home/oracle/SeleniumFramework/SeleniumResultsBackup/"$BACKUP_DIR_NAME"/"
                        echo "Directory path is "$BACKUP_DIR_PATH
                        '''

                }
            }
        }
    }
}

При выполнении этого я можно увидеть значение BACKUP_DIR_NAME оценивается как пустое. Не могли бы вы помочь мне исправить вышеуказанный код?

1 Ответ

0 голосов
/ 10 апреля 2020

В вашем шаге sh вы смешиваете два типа переменных. В первой строке вы пытаетесь получить доступ к переменной Groovy и интерполировать ее значение для создания переменной оболочки. Во второй строке вы ожидаете получить доступ к этой переменной оболочки.

Чтобы удовлетворить первую часть, вам нужно использовать двойные кавычки для создания строки Groovy, которая поддерживает интерполяцию переменных. Чтобы удовлетворить вторую часть, вам нужно экранировать \$, чтобы предотвратить интерполяцию $BACKUP_DIR_PATH.

BACKUP_DIR_NAME="10-04-2020"

pipeline {
    agent any

    stages {

        stage('First') {
            steps {
                script {
                    sh """
                       BACKUP_DIR_PATH="/home/oracle/SeleniumFramework/SeleniumResultsBackup/"$BACKUP_DIR_NAME"/"
                        echo "Directory path is "\$BACKUP_DIR_PATH
                        """
                }
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...