Настройка прокси для одной команды Unix shell в Jenkins
Переопределите окружение прокси для одной команды сборки на стороне агента, не меняя контроллер и не связанные с ней этапы.
Для одной команды на Unix-агенте Jenkins поместите назначение прокси в эту команду:
node('linux') {
sh 'http_proxy=http://build-proxy.example:8080 https_proxy=http://build-proxy.example:8080 ./build.sh'
}Пример предполагает, что в репозитории есть скрипт сборки, а инструменты агента читают эти имена окружения. Присваивания заменяют унаследованные значения для этой команды и её дочерних процессов. Они не перезаписывают постоянное окружение машины. Для шага сборки, который получает публичные артефакты по разрешённому маршруту без аутентификации прокси, список HTTP-прокси может предложить подходящие HTTP-эндпоинты для этих значений.
Если несколько шагов Pipeline должны совместно использовать это переопределение, используйте блок withEnv вокруг этих шагов. Jenkins документирует, что обработка переменных не учитывает регистр, но сохраняет его; проверьте получившееся написание, когда инструмент Unix требует определённое имя в нижнем регистре.
Обычный export в одном шаге sh принадлежит этой оболочке. Более поздний независимый шаг оболочки — это новый процесс, и он не наследует изменения соседнего шага.
Применяйте настройку там, где выполняется команда. Загрузки контроллера Jenkins и инструмент, запущенный на удалённом агенте, — разные сетевые потребители. Успешная проверка обновлений на контроллере не доказывает маршрут команды агента.