Не находится файл, загружаемый через файловый параметр пайплайна Jenkins

Пытаюсь загрузить json-файл через файловый параметр пайплайна Jenkins. Однако в воркспейсе в итоге пусто. Пытался в поле "Местоположение файла" файлового параметра писать нечто вроде $WORKSPACE/myFile.json - безрезультатно (при попытке обратиться по этому пути получаю NoSuchFileException). Знаю, что в Jenkins имеется ряд проблем, связанных с работой файлового параметра - но, возможно, есть какие-то пути решения этой проблемы? Я в Jenkins новичок, поэтому буду благодарен за любой совет.


Ответы (1 шт):

Автор решения: Lifailon

Это проблема как я понимаю так и не была решения? Поиск с корня также не дает результатов:

find / -type f -name "${UPLOAD_FILE}" 2> /dev/null

Что особенно странно, имя файла передается как переменная окружения, а не параметра...

Ответ - использовать плагин file-parameters

Вот пример:

pipeline {
    agent any
    parameters {
        base64File 'UPLOAD_FILE'
    }
    stages {
        stage('Читаем содержимое файла') {
            steps {
                // Переменная хранит содержимое файла в формате base64
                // echo UPLOAD_FILE
                // Декодируем base64
                withFileParameter('UPLOAD_FILE') {
                    sh """
                        echo "$UPLOAD_FILE" # выводим путь к временному файлу с содержимым переданного файла
                        cat "$UPLOAD_FILE"  # читаем содержимое файла
                    """
                }
            }
        }
    }
}
→ Ссылка