Как получить доступ к переменной окружения из zip в Pipeline? - PullRequest
0 голосов
/ 15 марта 2019

У меня есть следующий конвейер:

environment {
    OUTPUT_FILE = 'OutputFile.zip'
}

stages {
    stage('Build') {
        steps {
            // Build my app
            zip archive: true, dir: 'zip', glob: '', zipFile: '${env.OUTPUT_FILE}'    
        }
    }
}

Я хочу использовать переменную среды OUTPUT_FILE в задаче zip, но похоже, что значение не разрешено должным образом.

Я пробовал:

zip archive: true, dir: 'zip', glob: '', zipFile: '${OUTPUT_FILE}'
zip archive: true, dir: 'zip', glob: '', zipFile: '${env.OUTPUT_FILE}'
zip archive: true, dir: 'zip', glob: '', zipFile: '$OUTPUT_FILE'

Никто из них не работает.

1 Ответ

1 голос
/ 15 марта 2019

Вы используете неправильный синтаксис - во всех ваших примерах вы используете простую (и точную) строку.Однако в этом случае вам не нужно ставить env.OUTPUT_FILE внутри кавычек, поэтому правильный синтаксис просто:

zip archive: true, dir: 'zip', glob: '', zipFile: env.OUTPUT_FILE

или даже

zip archive: true, dir: 'zip', glob: '', zipFile: OUTPUT_FILE

Одна вещь стоитупоминания.Если вы когда-нибудь окажетесь в ситуации, когда вам нужно создать строку с использованием интерполяции, используйте двойные кавычки.Например, если вы хотите отобразить имя файла ZIP на консоли с дополнительным комментарием, то следующий синтаксис поможет:

echo "The name of ZIP file is ${env.OUTPUT_FILE}"

Одинарные кавычки в Groovy эквивалентны String Java и онине поддерживает интерполяцию переменных.

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