Установите окружение из файла sh в jenkins и сохраните его до конца сборки - PullRequest
0 голосов
/ 24 февраля 2020

В моем конвейере я хотел бы получить файл, задав переменные окружения, такие как . ./file.sh, и оставить их установленными для остальной части конвейера. Я думаю, что это не реализовано, учитывая, что есть проблема, открытая уже несколько лет https://issues.jenkins-ci.org/browse/JENKINS-10773

В данный момент я тестировал: выведите разные значения. Я ожидаю, что Дженкинс каждый раз будет создавать новую оболочку. Есть ли возможность не вызывать новую оболочку?.

Насколько я знаю, я вижу 3 возможности:

  1. Выполнить все мои команды в одном операторе sh или обернуть выполнение в скрипте. Проблема в том, что это делает отладку довольно сложной.
  2. Исходный файл для каждой команды sh.
  3. Создание пользовательской функции groovy, заключающей вызов.

Два последних решения звучат грязно, любые предложения приветствуются.

1 Ответ

0 голосов
/ 24 февраля 2020

Похоже, что мы можем следовать директиве environment, чтобы обрабатывать как глобальные переменные, так и переменные, заданные c.

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

pipeline { agent any environment { myGlobVar = '2020' } stages { stage('Example') { environment { myStgeSpecificVar = 2020.2 } steps { sh 'printenv' } } } }

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