Это «решение», которое сработало для нас.Основная идея заключается в том, что сценарий setup_env.sh
запускает новую оболочку, в которую он экспортирует несколько переменных среды.Нам нужен был доступ к этим определениям переменных.Итак, мы выполнили Jenkins Build из трех частей:
Шаг 1 - Выполнить оболочку
Используйте встроенную Jenkins «Выполнить оболочку» для запуска нашего setup_env.sh
сценария.Затем передайте во вновь запущенную оболочку простой скрипт на python, который создает дамп среды в файл.
/path/to/setup_env.sh . <<< 'python <<SC
print "Exporting env to buildenv.properties file"
import os
f = open("buildenv.properties", "w")
env = os.environ
for k in env:
f.write("%s=%s\n" % (k, env[k]))
f.close()
print "Done exporting env"
SC'
Шаг 2. Добавление переменных среды
Теперь мы используем Плагин EnvInject для вставки переменных окружения из файла, сброшенного на предыдущем шаге.Конфигурация здесь проста, просто укажите имя файла выведенных свойств в качестве значения поля Properties File Path
.
Шаг 3 - Вызов Ant
Здесь мы запускаем нормальную сборку ant
.Поскольку среда теперь содержит все необходимые определения, сборка завершается как обычно.